Servlet三大域对象:
l ServletContext:范围最大,应用范围!
l HttpSession :会话范围!
l HttpServletRequest:请求范围!
域对象之一
域对象都有存取功能:
setAttribute(“attrName”, attrValue );//put
Object attrValue = getAttribute(“attrName”);//get
removeAttribute(“attrName”);//remove
1 ServletContext的作用
l 存取域属性,ServletContext是一个域对象;
l 可以用来获取应用初始化参数;
l 获取资源
ServletContext的生命周期
l ServletContext在容器启动时就被创建了;
l ServletContext在容器关闭时才会死!
l 一个项目只有一个ServletContext对象。
3 获取ServletContext
l 通过ServletConfig的getServletContext()方法来获取!
Ø ServletConfig是init()方法的参数,那只能在init()方法中获取了;
Ø GenericServlet代理了ServletConfig的所有方法,而且还提供了getServletConfig(),所以在GenericServlet的子类中可以使用如下方式来获取ServletContext对象:
² this.getServletContext()
² this.getServletConfig().getServletContext()
Ø HttpSession也有这个方法,session.getServletContext()。
4 域对象:ServletContext
l void setAttribute(String name, Object value):存储属性;
l Object getAttribute(String name):获取属性;
l void removeAttribute(String name):移除属性;
l Enumeration getAttributeNames():获取所有属性名称;
5 获取初始化参数
一个 项目不只是可以配置servlet的初始化参数,还可以配置应用初始化参数
下面就是在web.xml中配置应用的初始化参数,这些参数需要使用ServletContext来获取
<context-param> <param-name>p1</param-name> <param-value>v1</param-value> </context-param> <context-param> <param-name>p2</param-name> <param-value>v2</param-value> </context-param> |
l String getInitParameter(String name):通过参数名获取参数值;
l Enumeration getInitParameterNames():获取所有参数的名称;
6 获取资源
l 获取真实路径:getRealPath(String path):路径必须以“/”开头!它相对当前项目所在路径的。
l 获取指定路径下的所有资源路径:Set set = sc.getResourcePaths(“/xxx”)
l 获取资源流:InputStream in = sc.getResourceAsStream(“/xxx”)
7 Class和ClassLoader获取资源
User.class如何变成Class<User>的呢,由ClassLoader完成的!把硬盘上的User.class加载到内存,变成Class对象。
使用它们获取资源流!它们相对类路径(classpath)
- ServletContextservletcontext对象10 servletcontext对象 httpservletrequest servletcontext httpsession servletcontext常用 方法 数据 servletcontext对象servlet p7 genericservlet servletcontext servletconfig 路径servletcontext全局 常用 servlet_mapping servletcontext servlet mapping 九天servletcontext servletconfig java servletcontext 11