学习博客:【JavaWeb】ServletContext

web容器在启动时,为每个web程序创建一个对应的ServletContext对象,代表当前的web应用

共享数据:在一个Servlet中保存的数据,在另一个Servlet中拿到

存放数据

package com.yl.servlet;import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;public class HelloServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//this.getInitParameter();      初始化参数//this.getServletConfig();      Servlet配置//this.getServletContext();     Servlet上下ServletContext context = this.getServletContext();String username = "杨杨";context.setAttribute("username", username);     //将数据保存在ServletContext中}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}
}

读取数据

package com.yl.servlet;import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;
import java.io.PrintWriter;public class GetServlet extends HelloServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {ServletContext context = this.getServletContext();String username = (String)context.getAttribute("username");resp.setContentType("text/html");resp.setCharacterEncoding("utf-8");PrintWriter writer = resp.getWriter();writer.print("名字:" + username);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}
}

web.xml

<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaeehttps://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"version="5.0"metadata-complete="true"><servlet><servlet-name>helloservlet-name><servlet-class>com.yl.servlet.HelloServletservlet-class>servlet><servlet-mapping><servlet-name>helloservlet-name><url-pattern>/hellourl-pattern>servlet-mapping><servlet><servlet-name>getcservlet-name><servlet-class>com.yl.servlet.GetServletservlet-class>servlet><servlet-mapping><servlet-name>getcservlet-name><url-pattern>/geturl-pattern>servlet-mapping>web-app>

获取初始化参数

<context-param><param-name>urlparam-name><param-value>jdbc:mysql://localhost:3306/mybatisparam-value>
context-param>
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {ServletContext context = this.getServletContext();String url = context.getInitParameter("url");resp.getWriter().println(url);
}

在这里插入图片描述

请求转发

在这里插入图片描述

重定向

在这里插入图片描述

读取资源文件

Properties

  • java目录下新建properties
  • resources目录下新建properties

都被打包到同一路径下 classes 称为classpath

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//InputStream is = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");InputStream is = this.getServletContext().getResourceAsStream("/WEB-INF/classes/com/yl/servlet/aa.properties");Properties prop = new Properties();prop.load(is);String un = prop.getProperty("username");String pwd = prop.getProperty("password");resp.getWriter().print(un + ":" + pwd);
}
<servlet><servlet-name>sd5servlet-name><servlet-class>com.yl.servlet.ServletDemo05servlet-class>
servlet><servlet-mapping><servlet-name>sd5servlet-name><url-pattern>/sd5url-pattern>
servlet-mapping>


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部