1.ServletContext对象的获取
获取ServletContext对象有多张方式
(1)通过request对象获取
ServletContext sc=request.getServletContext();
(2)通过session对象获取
ServletContext sc=request.getSession().getServletContext();
(3)通过ServletConfig对象获取
ServletContext sc=request.getServletConfig().getServletContext();
(4)直接获取
ServletContext sc=getServletContext();
2.ServletContext对象的常用方法
(1)获取当前服务器版本信息
String servletinfo =sc.getServerInfo();
(2)获取项目的真实路径
String realpath =sc.getRealPath("/");
3.ServletContext域对象
ServletContext虽然也可以获取域对象,但不建议存放过多数据,因为ServletContext中的数据没有手动移除会一直保存,占用空间。
(1)设置域对象
sc.setAttribute("name","zhangsan");
(2)获取域对象
String name=sc.getAttribute("name");
(3)移除域对象
sc.removeAttribute("name");
4.扩展:Servlet的三大域对象
三大域对象的设置、获取、移除方法都类似,但域对象的有效和失效条件不同。
(1)request域对象
只在一次请求中有效,请求转发只有一次请求,所有有效,重定向因为有两次请求失效。
(2)session域对象
在一次会话中有效,请求转发和重定向都有效。session销毁时失效,因为session的底层与cookie有关所以在浏览器关闭时cookie会销毁,所以session会失效。
(3)ServletContext域对象
在整个应用程序中有效,在服务器关闭时失效。