Servlet的三大作用域
request
request是一個請求,只要發(fā)送一個請求就會創(chuàng)建一個request對象,這個對象只在本次請求中有效。
一般用于不同頁面之間的同一請求,比如表單的傳值,a鏈接的傳值跳轉(zhuǎn)等。
request對象常用的方法有:request.setAttribute(), request.getAttribute(), request.removeAttribute(), request.getParameter()等。
session
session是一次會話,服務器會為每一個會話創(chuàng)建一個session對象,session中的數(shù)據(jù)可以被本次會話中的所有servlet訪問,會話是從瀏覽器打開開始,到關(guān)閉瀏覽器結(jié)束。
session常用于登錄驗證,登錄成功后瀏覽器會為其分配一個session鍵值對,之后的訪問權(quán)限判斷鍵值對就可以了。
session對象常用的方法有session.setAttribute(); session.getAttribute(); session.removeAttribute();
session對象的創(chuàng)建,在servlet中使用HttpSession session = request.getSession();l的方式來創(chuàng)建;因為session是JSP的內(nèi)置對象,所以在jsp頁面中可以通過<%session.setAttribute(“name”,”name”)%>的方式使用session
session對象的銷毀??梢酝ㄟ^設置他的有效時間從而達到銷毀的目的,session.setMaxInactiveInterval(10);還可以直接注銷掉session.invalidate();
用戶第一次訪問服務器的時候服務器會自動給其分配一個sessionID,用戶將該sessionID存放到本地,下次使用的時候就不會再次創(chuàng)建了。

application
application是應用程序作用域,是從程序開始運行到運行停止。
保存在application作用域中的值,只要程序沒有停止運行,都可以獲取。
此作用域一般不使用。
注意
如果能使用request作用域就使用request作用域,如果request作用域用不了,則使用session作用域。會話級別的數(shù)據(jù)要是用session作用域,比如說登錄信息,銀行賬號,如果數(shù)據(jù)是系統(tǒng)級別的,那么使用application作用域
---------------------
作者:Sunny-安好
來源:CSDN
原文:https://blog.csdn.net/qq_19001241/article/details/77924213
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!
相同點:
ServletContext 就是application!
說明:
其實servletContext和application 是一樣的,就相當于一個類創(chuàng)建了兩個不同名稱的變量。ServletContext及application是單個服務器上部署是單例的,所以兩者本質(zhì)上是一個對象。
大家只要打開jsp編譯過后生成的Servlet中的 _jspService()方法就可以看到如下的聲明:
ServletContext application =null;application = pageContext.getServletContext();
不同點:
application用在jsp中,servletContext用在servlet中。
說明:
application和page request session 都是JSP中的內(nèi)置對象,
在后臺用ServletContext存儲的屬性數(shù)據(jù)可以用application對象獲得。而且application的作用域是整個Tomcat啟動的過程。
例如:
?ServletContext.setAttribute("username",username);
則在JSP網(wǎng)頁中可以使用如下語句來得到這個用戶名。
application.getAttribute("username");
https://www.cnblogs.com/vice/p/9125431.html