Servlet—08—ServletContext; Servlet Config;
Servlet Context:
1.问题:
request解决了一次请求内的数据共享问题, session解决了相同用户不同请求的数据共享问题, 那么不同的用户的数据共享问题怎么办呢?
request:一次请求的数据共享
session:相同浏览器相同请求、不同请求的数据共享问题
ServletContext:不同浏览器相同请求、不同请求的数据共享问题
2.解决:
使用ServletContext技术; 可实现不同用户共享数据;
3.特点:
- 1)ServletContext是由服务器创建的;
- 2)每一个项目只能有一个ServletContext对象;
- 3)ServletContext生命周期:从服务器创建到服务器关闭;
4.代码实现:
5.小项目:
1)目标:做一个项目,要求运用到Servlet Context技术, 用ServletContext统计浏览器被访问次数, 并且Tomacat服务器关闭重启后, 访问次数仍然从上次的次数开始计数 :
2)思路:
在服务器启动的时候将计数文件中的数据存储到ServletContext 中init()。
在服务器关闭的时候将ServletContext 中的计数器数据存储到计数文件中destroy()。
ServletConfig:
在Servlet的配置文件web.xml中,可以使用一个或多个<init-param √>标签为servlet配置一些初始化参数。
当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig √对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。进而,我们通过ServletConfig对象就可以得到当前servlet的初始化参数信息。
获取ServletConfig对象
ServletConfig sg = this.getServletConfig();
获取web.xml中的信息
String flag = sg.getInitParameter("param-name √");