zoukankan      html  css  js  c++  java
  • ServletContext、HttpSession和HttpServletRequest的区别和联系

    1. ServletContext:范围最大,应用程序级别的,整个应用程序都能访问;
    2. HttpSession–次之,会话级别的,在当前的浏览器中都能訪问[不论是在同一浏览器开多少窗体,都能够访问],可是换个浏览器就不行了,
        就必须又一次创建session;
    3. HttpServletRequest–范围最小,请求级别,请求结束,变量的作用域也结束【也就是仅仅是一次访问,访问结束,这个也结束】。

    如:

    /**
         * 在Servlet中懂得ServletContext HttpSession 以及HttpServletRequest之间的关系:
         * ServletContext–范围最大,应用程序级别的,整个应用程序都能访问
         * HttpSession–次之,会话级别的,在当前的浏览器中都能訪问[不论是在同一浏览器开多少窗体,都能够访问],可是换个浏览器就不行了。
         * 就必须又一次创建session
         * HttpServletRequest –范围最小,请求级别,请求结束,变量的作用域也结束[也就是仅仅是一次访问,访问结束,这个也结束]
         * 
         * @param request
         * @param response
         * @return
         */
        @RequestMapping("/testServlet")
        public ResponseBean testServlet(HttpServletRequest request, HttpServletResponse response) {
            // 1
            ServletContext sc = request.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");
    
            log.debug(sc_value + ":" + session_value + ":" + request_value);
    
            // request.getRequestDispatcher("MyServlet2").forward(request, response);
    
            return ResponseBean.buildSuccessResponse();
        }
    
        @RequestMapping("/testServlet2")
        public ResponseBean testServlet2(HttpServletRequest request, HttpServletResponse response) {
            // 1
            ServletContext sc = request.getServletContext();
            // 2
            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");
    
            log.debug(sc_value + ":" + session_value + ":" + request_value);
    
            // request.getRequestDispatcher("MyServlet2").forward(request, response);
    
            return ResponseBean.buildSuccessResponse();
        }
  • 相关阅读:
    页面内容[置顶] 采用Div+Css布局——牛腩
    区域函数[置顶] linux 3.4.10 内核内存管理源代码分析5:伙伴系统初始化
    安装应用android批量安装APK
    选择版本Win7系统VS2010下搭建qt开发环境
    字体格式The format of Oracle tnsnames.ora file
    程序执行vhdl中延时器的编写
    概率链接nbu 2416 奇怪的散步
    中国主题ASP.Net课堂实验4
    要求终点HDU1010:Tempter of the Bone
    解决方案编程苦B和二B程序员别忘了养生
  • 原文地址:https://www.cnblogs.com/damoblog/p/14034868.html
Copyright © 2011-2022 走看看