servlet-servletContext简述

servletContext是servlet中的一个接口,但是更像一个容器。

servletContext的作用:

1.共享servlet数据:

通过this.getServletContext().setAttribute("名字",变量名)    /*传值进去*/

通过this.getServletContext().getAttribute("名字")  /*取值出来*/

这样能在项目中的所用servlet中共享数据。

2.servlet转发:

通过RequestDispatcher rd = this.getServletContext().getRequestDispatcher("/1.jsp");

      rd.forward(request, response);
在servlet中并不适合做输出,这时候可以通过转发用jsp输出。  
 
3.在配置文件中用<context-param>初始化参数,在加载web应用的时候,能自动封装到ServletContext中,在所有servlet中都可以直接取
 
4.读取web应用中的资源文件:

InputStream in = this.getServletContext().getResourceAsStream("/db.properties");
Properties pros = new Properties();
pros.load(in);
String url = pros.getProperty("url");

很多时候可以用来读取连接数据库信息

5.普通java程序读取web中的资源文件

如果读取资源文件的程序不是servlet的话,就只能通过类装载器去读了(类加载器(用来把Java 类动态的加载到 Java 虚拟机中。)


String path = UserDao.class.getClassLoader().getResource("test.properties").getPath();
FileInputStream in = new FileInputStream(path);
Properties dbconfig = new Properties();
dbconfig.load(in);
String url = dbconfig.getProperty("url");

类装载器只会装载一次,服务器发现里面有内存里有有装载文件就不会在装载了。
通过类加载的方式得到资源文件的位置,在通过传统方式读取资源文件的数据,这样可以读到更新后的数据。

 
 
原文地址:https://www.cnblogs.com/sjyzz/p/6533617.html