保存作用域
1. 保存作用域
原始情况下,保存作用域我们可以认为有四个: page(页面级别,现在几乎不用) , request(一次请求响应范围) , session(一次会话范围) , application(整个应用程序范围)
1) request:一次请求响应范围有效
2) session:一次会话范围有效
3) application: 一次应用程序范围有效
1. 验证 -> request:一次请求响应范围有效
1.1 使用客户端重定向验证
Demo01Servlet 类
@WebServlet("/demo01")
public class Demo01Servlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.向request保存作用域中保存数据
request.setAttribute("uname","lili");
//2.客户端重定向
response.sendRedirect("demo02");
}
}
Demo02Servlet 类
@WebServlet("/demo02")
public class Demo02Servlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取request保存作用域中保存的数据,key为uname
Object uname = request.getAttribute("uname");
System.out.println("uname = " + uname);
}
}
1.2 使用服务器端转发验证
Demo01Servlet 类
@WebServlet("/demo01")
public class Demo01Servlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.向request保存作用域中保存数据
request.setAttribute("uname","lili");
//2.客户端重定向
//response.sendRedirect("demo02");
//3.服务器端转发
request.getRequestDispatcher("demo02").forward(request,response);
}
}
2. 验证 -> session:一次会话范围有效
- 一个浏览器在同一时刻只能产生一个session,关闭浏览器时,session就失效了
- 两个浏览器同一时刻产生的是两个不同的session
3. 验证 -> application: 一次应用程序范围有效(只要tomcat服务器不关,就一直有效,任何浏览器都能访问)
Demo05Servlet 类
@WebServlet("/demo05")
public class Demo05Servlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.向application保存作用域中保存数据
//ServletContext:Servlet上下文
ServletContext application = request.getServletContext();
application.setAttribute("uname","lili");
//2.客户端重定向
response.sendRedirect("demo06");
}
}
Demo06Servlet 类
@WebServlet("/demo06")
public class Demo06Servlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取application保存作用域中保存的数据,key为uname
ServletContext application = request.getServletContext();
Object uname = application.getAttribute("uname");
System.out.println("uname = " + uname);
}
}