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