1 回答

TA貢獻1036條經(jīng)驗 獲得超461個贊
這個概念性的東西一百度就一大堆
pageContext, request, session、application四個作用域中
????? ??1、如果把變量放到pageContext里,就說明它的作用域是page,它的有效范圍只在當(dāng)前jsp頁面里。?從把變量放到pageContext開始,到j(luò)sp頁面結(jié)束,你都可以使用這個變量。
????? ? 2、如果把變量放到request里,就說明它的作用域是request,它的有效范圍是當(dāng)前請求周期。所謂請求周期,就是指從http請求發(fā)起,到服務(wù)器處理結(jié)束,返回響應(yīng)的整個過程。在這個過????????????程中可能使用forward的方式跳轉(zhuǎn)了多個jsp頁面,在這些頁面里你都可以使用這個變量。
????? ? 3、如果把變量放到session里,就說明它的作用域是session,它的有效范圍是當(dāng)前會話。所謂當(dāng)前會話,就是指從用戶打開瀏覽器開始,到用戶關(guān)閉瀏覽器這中間的過程。這個過程可能包含多個請求響應(yīng)。也就是說,只要用戶不關(guān)瀏覽器,服務(wù)器就有辦法知道這些請求是一個人發(fā)起的,整個過程被稱為一個會話(session),而放到會話中的變量,
????? ? 4、如果把變量放到application里,就說明它的作用域是application,它的有效范圍是整個應(yīng)用。整個應(yīng)用是指從應(yīng)用啟動,到應(yīng)用結(jié)束。我們沒有說“從服務(wù)器啟動,到服務(wù)器關(guān)閉”是因為一個服務(wù)器可能部署多個應(yīng)用,當(dāng)然你關(guān)閉了服務(wù)器,就會把上面所有的應(yīng)用都關(guān)閉了。application作用域里的變量,它們的存活時間是最長的,如果不進行手工刪除,它們就一直可以使用。與上述三個不同的是,application里的變量可以被所有用戶共用。如果用戶甲的操作修改了application中的變量,用戶乙訪問時得到的是修改后的值。這在其他scope中都是不會發(fā)生的,page, request, session都是完全隔離的,無論如何修改都不會影響其他
添加回答
舉報