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 {
@Override
protected 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中
}
@Override
protected 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{
@Override
protected 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);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
}
web.xml
获取初始化参数hello com.yl.servlet.HelloServlet hello /hello getc com.yl.servlet.GetServlet getc /get
url jdbc:mysql://localhost:3306/mybatis
@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);
}
sd5 com.yl.servlet.ServletDemo05 sd5 /sd5



