qidao123.com技术社区-IT企服评测·应用市场
标题:
Servlet p7 ServletContext对象
[打印本页]
作者:
知者何南
时间:
2023-7-6 16:10
标题:
Servlet p7 ServletContext对象
ServletContext对象
每一个 web 应用都有且仅有一个 ServletContext 对象
,又称为 Application 对象,从名称中可知,该对象是与应用程序相关的。在WEB 容器启动时,会为每一个 WEB 应用创建一个对应的 ServletContex对象。
该对象有两大作用:
作为域对象来共享数据,此时数据在整个应用程序中共享;
该对象中保存了当前应用程序相关信息。例如可以通过getServerInfo()方法获取当前服务器信息,getRealPath(String path) 获取资源的真是路径等。
//常用方法
//获取服务器当前版本信息
String serverInfo = req.getServletContext().getServerInfo();
System.out.println("获取服务器当前版本信息 = " + serverInfo);
//获取项目的真实路径
String realPath = req.getServletContpext().getRealPath("/");
System.out.println("获取项目的真实路径 = " + realPath);
复制代码
ServletContext对象的获取
获取Servlet Context对象的途径有很多。比如:
通过request对象获取
ServletContext servletContext1 = req.getServletContext();
通过Session对象获取
ServletContext servletContext2 = req.getSession().getServletContext();
通过ServletConfig对象获取,在 Servlet 标准中提供了 ServletConfig 方法
ServletContext servletContext3 = getServletConfig().getServletContext();
直接获取
ServletContext servletContext4 = getServletContext();
ServletContext域对象
ServletContext也可当做域对像象来使用,通过向ServletContext中存取数据,可以使得整个应用程序共享某些数据。当然不建议存放过多数据,因为ServletContext中的数据一旦存储进去没有手动移除将会一直保存。
//获取ServletContext对象
ServletContext servletContext = request.getServletContext();
//设置域对象
servletContext.setAttribute("uname", "admin");
//获取指定名称的域对象
String uname = (String) servletContext.getAttribute("uname");
//移除域对象
servletContext.removeAttribute("uname");
复制代码
Servlet的三大域对象
request域对象
三个中作用范围最小,在一次请求中有效。请求转发有效,重定向无效。
session域对象
在一次会话中有效,请求转发和重定向都有效,session销毁后失效。
servletContext域对象
三个中作用范围最大,在整个应用程序中有效。服务器关闭后失效。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 qidao123.com技术社区-IT企服评测·应用市场 (https://dis.qidao123.com/)
Powered by Discuz! X3.4