Servlet第七课:ServletContext HttpSession 以及HttpServletRequest之间的关系

课程目标:


① 在Servlet中懂得ServletContext HttpSession 以及HttpServletRequest之间的关系

② 懂得怎样使用它们

概念介绍:

1. [共同点]不管对象的作用域怎样,共享变量和获得变量的 方法都是一致的
–setAttribute(“varName”,obj);
–getAttribute(“varName”);
2. 变量的作用域
ServletContext–范围最大,应用程序级别的,整个应用程序都能訪问
HttpSession   – 次之。会话级别的,在当前的浏览器中都能訪问[不论是在同一浏览器开多少窗体,都能够訪问],可是换个浏览器就不行了,就必须又一次创建session
HttpServletRequest  –范围最小,请求级别。请求结束,变量的作用域也结束[也就是仅仅是一次訪问。訪问结束,这个也结束]

3. 实例

插播广告:博客之星评选,点击投我一票,谢谢


以上三个数据的设置:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		   // 1    
        ServletContext sc = this.getServletContext();    
        sc.setAttribute("sc_name", "sc_value");    
        // 2    
        HttpSession session = request.getSession();    
        session.setAttribute("session_name", "session_value");    
        // 3    
        request.setAttribute("request_name", "request_value");   
        
        String sc_value = (String) sc.getAttribute("sc_name");    
        String session_value = (String) session.getAttribute("session_name");    
        String request_value = (String) request.getAttribute("request_name");  

        System.out.println(sc_value+":"+session_value+":"+request_value);
        
        
       // request.getRequestDispatcher("MyServlet2").forward(request, response);
        
}
Servlet2 的获取:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		   
        ServletContext sc = this.getServletContext();    
        HttpSession session = request.getSession();    
      
        String sc_value = (String) sc.getAttribute("sc_name");    
        String session_value = (String) session.getAttribute("session_name");    
        String request_value = (String) request.getAttribute("request_name"); 
        
        System.out.println(sc_value+":"+session_value+":"+request_value);
}

结论:

HttpServletRequest  仅仅是浏览器的一次訪问。除非servlet做处理,比方

request.getRequestDispatcher("MyServlet2").forward(request, response);
就会传递。

Session 用于同一浏览器,能够互相调用数据

ServletContext 整个应用程序都能够訪问


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值