ServletContext对象
通过前面知识点的学习,我们对于请求的处理已经可以说比较灵
活了,但是还不够。我们再介绍两个重要的对象 ServletContext 对象
和 ServletConfig 对象 可以看综合例子锻炼。
问题:
Request 解决了一次请求内的数据共享问题,session 解决了
用户不同请求的数据共享问题,那么不同的用户的数据共享该怎
么办呢
解决:
使用 ServletContext 对象
作用:
解决了不同用户的数据共享问题
原理:
ServletContext 对象由服务器进行创建,一个项目只有一个对
象。不管在项目的任意位置进行获取得到的都是同一个对象,那
么不同用户发起的请求获取到的也就是同一个对象了,该对象由
用户共同拥有。
特点:
服务器进行创建用户共享
一个项目只有一个
生命周期:
服务器启动到服务器关闭
作用域:
项目内
使用:
获取 ServletContext 对象
使用作用域进行共享数据流转
获取 web.xml 中的全局配置
获取 webroot 下项目资源流对象
获取 webroot 下资源绝对路径
案例:网页浏览器次数统计,详见源码
详解servletconfig的细节
使用 ServletContext 对象可以获取 web.xml 中的全局配置文件,
在 web.xml 中
每个 Servlet 也可以进行单独的配置,那么该怎么获取配置信
息呢?
解决:
使用 ServletConfig 对象作用:
ServletConfig 对象是 Servlet 的专属配置对象,每个 Servlet 都
单独拥有一个 ServletConfig 对象,用来获取 web.xml 中的配置信
息。
使用:
获取 ServletConfig 对象
获取 web.xml 中 servlet 的
public class ServletConfigServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//获取ServletConfig对象
ServletConfig sc=this.getServletConfig();
//获取web.xml中的配置数据
String code=sc.getInitParameter("config");
System.out.println(code);
}
}
web.xml中的代码 全局上下文配置(全局配置参数)
Servlet 配置
过滤器配置
监听器配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>07-ServletConfig</display-name>
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>ServletConfigServlet</servlet-name>
<servlet-class>com.bjsxt.servlet.ServletConfigServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>utf-8</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ServletConfigServlet</servlet-name>
<url-pattern>/sg</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>