WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。 ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。另一种获取ServletContext对像的方法是,在Servlet中通过this.getServletContext()获取。
ServletContext主要作用
1.同一应用下的不同Servlet实现数据共享
servletContext.setAttribute("name", "ddddd");//向ServletContext对象中添加数据
String str= this.getServletContext().getAttribute("name").toString();//从ServletContext中读取数据
能实现数据共享原因是第个Web应用中只会创建一个ServletContext对象
2.读取文件
在WebContent(新建工程时的默认名字)下增加文件test.properties
InputStream is =this.getServletContext().getResourceAsStream("/test.properties");
Properties pro = new Properties();
pro.load(is);
System.out.println(pro.getProperty("name"));
如果把test.properties放到web-inf下读取文件的时的路径为:
InputStream is =this.getServletContext().getResourceAsStream("/WEB-INF/test.properties");
3.写日志
servletContext.log("好好好好");
tomcat 的server.xml中增加如下配置
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
如果是在ecplise的tomcat插件下运行,会在ecplise中打印日志。
如果是在tomcat下运行,会在tomcat的logs目录下生成日志文件(来源于网上,测试未成功。)