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