ServletContext
Web容器在启动的时候,它会为每个Web程序都创建一个对应的ServletContext对象,它代表了当前的Web应用;
共享数据
在一个Servlet中保存的数据,可以在另一个servlet中拿到
第一个Servlet
ServletContext context = this.getServletContext();
String usrname = "张三";
context.setAttribute("username",username);
第二个Servlet
ServletContext context = this.getServletContext();
String username = (String)context.getAttribute("Username");
注意:只有先访问第一个Servlet成功设置数据后,再访问第二个Servlet才能拿到数据
获取初始化参数
首先在web.xml中设置初始化参数
<context-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/mybatis</param-value>
</context-param>
在Servlet中获取初始化参数
ServletContext context = this.getServletContext();
String url = context.getInitParameter("url");
请求转发
ServletContext context = this.getServletContext();
RequestDispatcher requestDispatcher = context.getRequestDispatcher("/path");
requestDispatcher.forward(req,resp);
// 或者直接 context.getRequesetDispatcher("/path").forward(req,resp);
注意:此处path为web.xml中配置的url-pattern
读取资源文件
Properties
-
在java目录下新建propeties
-
在resources目录下新疆properties
在target中可以发现二者都被打包到了同一路径下:classes,这个路径就成为classpath
InputStream is = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties"); Properties prop = new Properties(); prop.load(is); String username = prop.getProperty("username");
路径/ + target里面的路径