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