程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> Jsp中application session request的區別實例

Jsp中application session request的區別實例

編輯:關於JSP

put.jsp

[html]
<%@ page contentType="text/html; charset=GBK" language="java" 
    errorPage=""%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>application測試</title> 
<meta name="website" content="http://www.crazyit.org" /> 
</head> 
<body> 
    <!-- JSP聲明 --> 
    <%!int i;%> 
    <!-- 將i值自加後放入application的變量內 --> 
    <% 
        application.setAttribute("counter", String.valueOf(++i)); 
    %> 
    <!-- 輸出i值 --> 
    <%=i%> 
</body> 
</html> 
[html] 
 
get.jsp
[html]
<%@ page contentType="text/html; charset=GBK" language="java" 
    errorPage=""%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>application測試</title> 
<meta name="website" content="http://www.crazyit.org" /> 
</head> 
<body> 
    <!-- 直接輸出application 變量值 --> 
    <%=application.getAttribute("counter")%> 
</body> 
</html> 
        此時在不同的浏覽器進程中刷新put.jsp頁面,無論在哪個浏覽器進程中訪問get.jsp頁面,必然得到的是連貫的值,因為counter的作用域是在application下,同時如果關閉浏覽器,在重新打開訪問put或者get頁面得到的還是上次訪問的值,因為application並沒有銷毀。同時注意,如果在不同浏覽器中訪問put頁面(不管浏覽器重新關閉打開與否),那麼值是連貫的(接著上一次訪問的" i " +1),因為這裡中jsp轉換為servlet(且只轉換成一次),在服務器後台中只有一個實例對象,所以大家訪問的  "  i  " 值是一樣的,直到服務器把servlet銷毀,或者服務器重啟重新部署服務器應用則重置“i ”為0。

 

        如果代碼中的application換成session(一次服務器與浏覽器之間的連接,只有浏覽器不關閉,該連接就一直存在),那麼在不關閉浏覽器進程下,在那個浏覽器進程中訪問get.jsp頁面,得到的是那個浏覽器中session.setAttribute("counter", String.valueOf(++i));因為counter的作用域是在session下,不同浏覽器進程session不一樣。如果關閉浏覽器,則session銷毀。保存的counter變量值變為null。

 

       如果代碼中application換成request,那麼不管何時何地訪問get頁面,得到的必然是null,因為重新訪問了get頁面,則是不同的請求request,所以request.getAttribute("counter")必定為空。

[java]
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved