[关闭]
@duyao 2015-05-02T03:11:00.000000Z 字数 1877 阅读 2611

servletContext

servlet


介绍

servletContext是在服务器端,被所有客户端共享,
servletContext是当web应用启动时,自动创建的,
servletContext当服务器关闭重启或者reload会使其销毁

servletContext可以看做一张表,一列是string另一列是object,有点类似于session

如果涉及不同用户数据共享,且数据量不大,又不想写如数据库,可以使用ServletContext

设置ServletContext

  1. //获取servletContext对象引用
  2. //1.通过this直接获取
  3. ServletContext servletContext=this.getServletContext();
  4. //2.通过ServletConfig获取
  5. //servletContext=this.getServletConfig().getServletContext();
  6. servletContext.setAttribute("name", "毒药");

取得ServletContext

  1. //获取ServletContext对象
  2. ServletContext servletContext=this.getServletContext();
  3. //取出属性,要转换成相应类型
  4. String string=(String) servletContext.getAttribute("name");
  5. //删除属性
  6. servletContext.removeAttribute("name");

应用

获取web应用的初始化参数

  1. <!-- 这里设置servlet配置信息,且只能被该servlet读取 -->
  2. <init-param>
  3. <param-name>encoding</param-name>
  4. <param-value>utf-8</param-value>
  5. </init-param>
  6. <!-- 在servlet外面使用context-param配置信息,所有的servlet都可以使用 -->
  7. <context-param>
  8. <param-name>name</param-name>
  9. <param-value>dy</param-value>
  10. </context-param>

获取web配置

  1. //获取web的配置信息,只能得到string类型,而不是一个对象
  2. String servletContext =this.getServletContext().getInitParameter("name");
  3. out.print("val="+servletContext);

实现转发

  1. //1.
  2. response.sendRedirect("/web应用名/资源名");
  3. //2.
  4. request.getRequestDispatcher("/资源名").forward(request, response);
  5. //3.
  6. this.getServletContext().getRequestDispatcher("/资源名").forward(request, response);

原理同forward相同

读取文件

建立db.properties,new->file->db.properties
内容为

  1. myname=tiger
  2. pwd=1234

用servletContext读取

  1. //读取到文件
  2. InputStream inputStream=this.getServletContext().getResourceAsStream("myname");

如果文件放在src目录下面,应该使用类加载器

  1. //使用类加载器获取src目录下面的文件
  2. InputStream inputStream=Sevlet2.class.getClassLoader().getResourceAsStream("db.properties");

读取文件

  1. //创建properties文件
  2. java.util.Properties properties=new java.util.Properties();
  3. properties.load(inputStream);
  4. out.print("myname="+properties.getProperty("myname"));

读取全路径

  1. //读取全路径
  2. String pathString=this.getServletContext().getRealPath("/img/1.jpg");
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注