javascript
【Servlet】总结 JSP的四大域对象、Servlet的四个作用域:pageContext、request、session、application
JSP的四大域對象:pageContext、request、session、application
這四個域對象,都提供了一對相同的方法:
-
設置一個屬性:
setAttribute(“屬性名”,“屬性值”); -
獲取一個屬性:
getAttribute(“屬性名”);
(1)pageContext:
它是四大域對象中域最小的,只能獲取本頁中set設置的屬性。
在A.jsp中設置的屬性,只能在A.jsp中使用。
(2)request:
request可以獲取到當前頁面所set的屬性,還可以獲取轉發頁面的屬性。
在A.jsp中設置的屬性name,在A中可以get到。
再通過request.getRequestDispatcher("B.jsp").forward(request, response);轉發到B.jsp,則在A和B中都能get到name。
(3)session:
用戶打開瀏覽器訪問,創建session(生命周期開始)。
session超時(默認為30分鐘)或被聲明失效(關閉瀏覽器),該對象生命周期結束(一次會話)。
session里的屬性,你可在任何網頁中設置和調用.
(4)application(又名ServletContext):
web應用加載的時候創建,只要服務器沒有關閉,它的屬性會一直保存。
Servlet的四個作用域:request、cookie、session、context
這四個對象有不同級別的作用域和生命周期。
(1)request:解決了一次請求內的數據共享問題(作用域:一次請求)
(2)cookie:解決了同一用戶不同請求的數據共享的問題(作用域:一次會話/或者設置定時)
Cookie c = new Cookie("uname", "張三"); // 創建Cookie對象c.setPath("CookieServlet"); // 指定共享cookie的Servletresp.addCookie(c); // 將cookie添加到響應對象中(3)session:解決了同一用戶不同請求的數據共享問題(作用域:會話創建->瀏覽器關閉)
// session 技術是依賴 cookie 技術的服務器端的數據存儲技術// cookie存儲在本地瀏覽器,而session存儲在服務器HttpSession hs=req.getSession(); // 在servlet中獲取session對象hs.setAttribute("uname","張三"); // 數據存儲(4)context:解決了不同用戶的數據共享問題(作用域:服務器啟動->服務器關閉)
ServletContext sc=this.getServletContext(); // 在servlet中獲取context對象sc.setAttribute("str", "ServletContext對象學習");// 數據存儲JSP與Servlet作用域對象的數據傳遞
以session為例:
Java中存儲session
HttpSession hs=req.getSession(); //在Servlet中獲取session對象 hs.setAttribute("user", userObj); //將userObj對象存入session中(鍵值對)jsp頁面獲取session
<%=((User)session.getAttribute("user")).getUname()%>總結
以上是生活随笔為你收集整理的【Servlet】总结 JSP的四大域对象、Servlet的四个作用域:pageContext、request、session、application的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Servlet】Filter过滤器详解
- 下一篇: 【Servlet】Listener监听器