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 整個應用程序都能夠訪問



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM