JaveWeb四種主要的范圍:
1.page: page表示頁面范圍。 頁面范圍對應的時間段為:從客戶訪問一個jsp文件開始,到這個jsp文件執行結束。
2.request: request表示請求范圍。 請求范圍時間段為:從客戶請求訪問一個jsp文件開始,到這個jsp返回響應結果結束,如果這個jsp文件把請求轉發給其他web組件,那么知道其他web組件返回響應結果結束。 請求范圍是指服務器響應一次客戶請求的過程,從servlet容器接收到一個客戶請求開始,到返回響應結果結束, 請求范圍與servletRequest和servletResponse相對應。
3.session: session表示會話范圍。 會話范圍對應着整個會話的生存周期。會話范圍是指瀏覽器與一個web應用進行一次會話的過程。具體實現上,會話范圍與httpsession對象的生命周期相對應。因此web組件只要共享同一個httpsession對象也就能共享會話范圍內的數據。 舉例說明: 瀏覽器進程第一次請求訪問應用中一個支持會話的網頁,servlet容器駛入尋找請求中表示sessionID的cookie,由於還不存在這樣的cookie,所以一個新的會話開始了,創建一個httpsession的對象,然后為它分配唯一的sessionID,並把id作為Cookie放在http響應結果中,當瀏覽器接收到http響應后,會把sessionID保存的cookie保存在客戶端。瀏覽器進程繼續訪問應用的任意一個支持會哈德頁面,http請求會包含表示sessionID的Cookie,servlet容器試圖尋找http請求中sessionID的cookie,找到后可以找到與sessionID匹配的httpSession。
4.application(應用)范圍: web應用范圍對應整個web應用的生存周期。web應用范圍值得是web應用的生命周期,具體實現上web應用范圍與servletContext對象的生命周期對應,web應用范圍內的共享數據作為servletContext的屬性存在。因此web組件只要共享同一個servletContext對象就能共享web應用范圍內的共享數據。
在jsp頁面可以直接使用application對象, 在servlet中卻不能直接使用,
這如何是好呢?
在servlet 中使用application方法如下:
this.getServletContext().setAttribute("user","123456");

原文鏈接:https://blog.csdn.net/a1281069907/article/details/80522239
