1、什么是ServletContext
ServletContext是一个全局的储存信息的空间。每个web程序在启动时都会创建一个相应的ServletContext对象,它代表当前web应用,并且被所有客户端共享。该对象在web应用关闭、Tomcat关闭或者Web应用reload的时候,会被销毁。
2、ServletContext的作用
当某些信息需要被多个web程序经常使用时,如果每次使用都去数据库查询,这样会导致访问数据库太频繁,开销也比较大。此时我们就要把数据储存到ServletContext对象中,每次使用去ServletContext对象中读取就可以。
3、ServletContext的应用
3.1、共享数据
(1)过程:将数据保存进Servlet中,然后另一个Servlet的可以拿到了
①保存数据
ServletContext context = this.getServletContext();
String username = “内容”;
Context.setAttribute(“名称”,username);
②取出数据
ServletContext context = this.getServletContext();
resp.setContentType(“text/html”);
Object username = context.getAttribute(“要获取参数的名字”);
(2)注意事项:如果取出的数据中含有中文要设置一下编码格式,不然会乱码。
3.2、获取初始化参数
ServletContext context = this.getServletContext();
String url = context.getInitParameter(“要获取参数的名字”);
原理图:
3.3、请求转发
ServletContext context = this.getServletContext();
RequestDispatcher requestdispatcher = context.getRequesDispatcher(“/转发的请求路径”);
Requestdispatcher.forward(req,resp);//调用forward实现请求转发
3.4、读取资料文件
InputStream is = this.getServletContext().getResourceAsStream("/路径");
Properties prop = new Properties();
prop.load(is);
String XXX = prop.getProperty("参数名");
4、后语
这个类基本上用不到,后面有其他技术可以代替它完成这四种功能,所以了解即可