zoukankan      html  css  js  c++  java
  • 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 整个应用程序都能够訪问


  • 相关阅读:
    2016奇虎360研发工程师内推笔试编程题:找镇长
    2016奇虎360研发工程师内推笔试编程题:找到字符串第一个只出现一次的字符
    lintcode: 最长无重复字符的子串
    lintcode :同构字符串
    lintcode : 跳跃游戏
    lintcode :单词搜索
    Project Euler 110:Diophantine reciprocals II 丢番图倒数II
    Project Euler 109 :Darts 飞镖
    Project Euler 108:Diophantine reciprocals I 丢番图倒数I
    Project Euler 107:Minimal network 最小网络
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7158645.html
Copyright © 2011-2022 走看看