标签:解决 context 创建 servlet ext3 -- setattr code sof
-运行在JVM.上的每一个web应用程序都有一 个与之对应的Servlet
上下文(Servlet运行环境)Servlet API提供ServletContext接口用来表示Servlet上下文
ServletCo-ntext对象可以被web应用程序中的所有servlet访问
ServletContext对象是web服务器中的一个已知路径的根
ServletContext对象由服务器进行创建,一个项目只有一个对象。 不管在项目的任意位置进行获取得到的都是同一个对象, 那么不同用户发起的请求获取到的也就是同一个对象了,该对象 用户共同拥有。
解决不同用户得数据共享问题
由服务器创建
所有用户共享同一个ServletContext对象
所有的Servlet都可以访问到同一个ServletContext中的属性
每一个web项目对象的是一个ServletContext
void setAttribute(String name,Object obj) 设置共享属性
Object getAttribute(String name) 读取共享属性
void removeAttribute(String name) 移除共享属性
ServletContext getContext(String uri) 获取指定uri的上下文对象
String getContextPath() 返回web程序的上下文路径
String getInitParameter(String param) 获取.上下文初始化参数
String getRealPath(String path) 返回资源在服务器上的真实路径
RequestDispatcher getRequestDispatcher(String path) 返回一个包装了路径信息的Dispatcher
//设置ServletContext对象 //1. 常用! ServletContext context1 =this.getServletContext(); //2. ServletContext context2 =this.getServletConfig().getServletContext(); //3. ServletContext context3 =request.getServletContext(); ? //设置ServletContext属性值 ServletContext servletContext = this.getServletContext(); servletContext.setAttribute("111","xinsiwei"); ? //获取ServletContext属性值 ServletContext servletContext = this.getServletContext(); String value = (String) servletContext.getAttribute("111"); System.out.println(value); ? ? //其他用途 //1.获取wem.xml中配置的公共属性 <context-param> <param-name>beijing</param-name> <param-value>huanyingnin!</param-value> </context-param> String value = servletContext.getInitParameter("beijing"); System.out.println(value); //2.获取某个文件的绝对路径 String path= servletContext.getRealPath("web.xml"); System.out.println(path); //获取项目的虚拟目录路径 String path2= servletContext.getContextpath(); System.out.println(path);
方便每一个servlet获取自己单独的属性配置
每一个servlet单独拥有一个ServletConfig对象
//在web.xml文件中servlet中添加 <init-param> <param-name>china</param-name> <param-value>beijing</param-value> </init-param> ServletConfig config = this.getServletConfig(); String value = config.getInitParameter("china"); System.out.println(value); //获取所有的key Enumeration<String> initParameterNames = config.getInitParameterNames(); while (initParameterNames.hasMoreElements()){ String key = initParameterNames.nextElement(); String value2 = config.getInitParameter(key); System.out.println(key+"-------"+value2);
标签:解决 context 创建 servlet ext3 -- setattr code sof
原文地址:https://www.cnblogs.com/-xsw000/p/12670437.html