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
分类:
06-Java Web
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律