javaweb学习09:ServletContext学习
-
ServletContext学习:
-
web容器在启动的时候,它会为每个web程序都创建一个对应的ServletContext对象,它代表了当前的web应用;
-
ServletContext对象是由容器创建的;
-
-
ServletContext应用:重点
-
共享数据:我在这个Servlet中保存的数据,可以在另外一个Servlet中拿到;
-
获取初始化参数:
-
配置初始化参数:
<!--配置一些web应用的初始化参数-->
<context-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/mybatis</param-value>
</context-param> -
获取初始化参数:
ServletContext context = this.getServletContext();
String str=context.getInitParameter("url");
-
-
请求转发:
-
请求转发:RequestDispatcher;
-
传入的参数为一个URL;
-
重点:转发的时候,浏览器请求路径是不变的;
ServletContext context = this.getServletContext();
RequestDispatcher requestDispatcher = context.getRequestDispatcher("/getServlet03");//参数为要转发的请求路径
requestDispatcher.forward(req,resp);//调用forward()方法转发
-
-
读取资源文件:
-
Properties
-
-
在resources目录下新建properties;
-
-
发现,都被打包到了同一个路径下:classes;我们俗称这个路径为classpath;(类路径)
//第一个"/"代表当前项目(jar包的第一层),不能省略
InputStream is = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");
Properties prop=new Properties();
prop.load(is);//加载
String ss=prop.getProperty("username");
-
-
-
笔记:
-
在Maven中,资源导出可能会出现问题:(比如Properties文件写在java文件夹里面的情况);
-
原因:maven是约定大于配置;
-
解决方案:在build中配置resources,来防止我们资源导出失败的问题;
-
-
-
共享数据代码案例:放数据
//放数据
public class HelloServlet extends HttpServlet {
-
共享数据代码案例2:取数据
//取数据
public class GetServlet extends HttpServlet {
-
共享数据代码案例:web.xml

浙公网安备 33010602011771号