保存作用域

保存作用域

1. 保存作用域
   原始情况下,保存作用域我们可以认为有四个: page(页面级别,现在几乎不用) , request(一次请求响应范围) , session(一次会话范围) , application(整个应用程序范围)
   1) request:一次请求响应范围有效
   2) session:一次会话范围有效
   3) application: 一次应用程序范围有效

1. 验证 -> request:一次请求响应范围有效

1.1 使用客户端重定向验证

a607d7654caf4e9f9964e8b8fd0016be.png

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);
    }
}

6b1a8503c02d46d1abd05cdbfc5b926b.png

d8c15681c3fa42fba18e6a04ee34d54a.png

1.2 使用服务器端转发验证

906ff4ba190345fbae4fe70a7ff6f54d.png

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);
    }
}

e35a7dfa77d74bb097708a5d455698ef.png

6c7c91cc139b4b05b3f9b6cb9293bf09.png

2. 验证 -> session:一次会话范围有效

  • 一个浏览器在同一时刻只能产生一个session,关闭浏览器时,session就失效了
  • 两个浏览器同一时刻产生的是两个不同的session

8016efd04edc47cd90c30dfa63c3abbd.png

3. 验证 -> application: 一次应用程序范围有效(只要tomcat服务器不关,就一直有效,任何浏览器都能访问)

7ec538e965804fe29cee0375224dc0be.png

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);
    }
}

c3d5e9d8a32d4aa2bfcb52f2d0ce7624.png

d9aed4f04f984085a58cd3c954e09e29.png

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值