java application作用域_servlet三大作用域:request,session,application
1. request
request是表示一個請求,只要發出一個請求就會創建一個request,它的作用域:僅在當前請求中有效。
用處:常用于服務器間同一請求不同頁面之間的參數傳遞,常應用于表單的控件值傳遞。
方法:request.setAttribute(); request.getAttribute(); request.removeAttribute(); request.getParameter().
2. session
服務器會為每個會話創建一個session對象,所以session中的數據可供當前會話中所有servlet共享。
會話:用戶打開瀏覽器會話開始,直到關閉瀏覽器會話才會結束。一次會話期間只會創建一個session對象。
用處:常用于web開發中的登陸驗證界面(當用戶登錄成功后瀏覽器分配其一個session鍵值對)。
方法:session.setAttribute(); session.getAttribute(); session.removeAttribute();
獲得session對象方法:
在Servlet中:HttpSession session = request.getSession();
由于session屬于jsp九大內置對象之一,當然可以直接使用。例如:。
session被銷毀
1)session超時;
2)客戶端關閉后,再也訪問不到和該客戶端對應的session了,它會在超時之后被銷毀;
3)調用session. invalidate();
備注: session是服務器端對象,保存在服務器端。并且服務器可以將創建session后產生的sessionid通過一個cookie返回給客戶端,以便下次驗證。(session底層依賴于cookie)
3. Application(ServletContext)
作用范圍:所有的用戶都可以取得此信息,此信息在整個服務器上被保留。Application屬性范圍值,只要設置一次,則所有的網頁窗口都可以取得數據。ServletContext在服務器啟動時創建,在服務器關閉時銷毀,一個JavaWeb應用只創建一個ServletContext對象,所有的客戶端在訪問服務器時都共享同一個ServletContext對象;ServletContext對象一般用于在多個客戶端間共享數據時使用;
獲取Application對象方法(Servlet中):
ServletContext app01 = this.getServletContext();
app01.setAttribute("name", "kaixuan");??? //設置一個值進去
ServletContext app02 = this.getServletContext();
app02.getAttribute("name");??? //獲取鍵值對
ServletContext同屬于JSP九大內置對象之一,故可以直接使用
備注:服務器只會創建一個ServletContext 對象,所以app01就是app02,通過app01設置的值當然可以通過app02獲取。
總結:
1.作用域: request session application
*??? 使用作用域傳遞數據和存儲數據
*??? 使用作用域傳遞數據時,必須掌握作用域對應的生命周期和作用范圍
*
2. * 生命周期
* (1)? request:只限于一次請求
* (2)? session:一次會話(多次請求)
*??? 開始
*????? 用戶向服務器發送請求的時候
*????? 結束
*??????? 客戶端
*???????? 丟失JsessionId值的時候(關閉瀏覽器)
*??????? 服務器端
*??????????? 關閉服務器
*??????????? 超過會話的不活動周期時間
*? (3) application:項目的加載到卸載
*3.作用范圍
* (1) requset:所有被請求轉發的Servlet
* (2) session:所有的Servlet
*? (3)application:所有的Servlet(換一個瀏覽器演示,跟session作用域區分)
*
4.*如何正確的選擇作用域
*(1)? request:跟當前操作功能相關
* (2) session: 跟用戶信息相關
* (3) application:跟項目全局信息相關----》京東配送地址
*
* 5.如何正確的選擇作用域不正確,會出現什么情況
*?? 內存浪費
總結
以上是生活随笔為你收集整理的java application作用域_servlet三大作用域:request,session,application的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java工程加包_Java工程中添加依赖
- 下一篇: java axis2小实例_java w