码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-07-30 03:20:23      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:session   servletcontext   httpservletrequest   servlet   

课程目标:


① 在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 整个应用程序都可以访问


Servlet第七课:ServletContext HttpSession 以及HttpServletRequest之间的关系,布布扣,bubuko.com

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

标签:session   servletcontext   httpservletrequest   servlet   

原文地址:http://blog.csdn.net/junzaivip/article/details/38285215

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!