Servlet第七課:ServletContext HttpSession 以及HttpServletRequest之間的關系
阿新 • • 發佈:2017-07-13
ora cep 結束 context pan 介紹 row for 瀏覽器中
Servlet2 的獲取:
結論:
課程目標:
① 在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); }
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之間的關系