在經典的網站上,訪問者可以浏覽幾個網頁並執行一些交互的行為。如果你在編寫這樣的網站,利用每一個用戶的一些數據是非常有用的。為了這個目的,我們可以使用JSP中的"sessions"。
Session是一個跟用戶相關的對象。當用戶訪問網站的時候,一些數據就被存放於session中,並在需要的時候從中取出數據。Session為不同的用戶保存了不同了數據。
以下的網頁將用戶的名字放置於session中,並可以在其它地方來顯示它。首先我們要制作一個表單,然後將它命名為GetName.html
<HTML>
<BODY>
<FORM METHOD=POST ACTION="SaveName.jsp">
What's your name? <INPUT TYPE=TEXT NAME=username SIZE=20>
<P><INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>
這個表單的目標是“SaveName.jsp”,它在session保存了用戶的名字。
<%
String name = request.getParameter( "username" );
session.setAttribute( "theName", name );
%>
<HTML>
<BODY>
<A HREF="NextPage.jsp">Continue</A>
</BODY>
</HTML>
SaveName.jsp在session保存了用戶了名字,並連接到另外一個網頁NextPage.jsp。NextPage.jsp 顯示了怎樣取出被保存的名字:
<HTML>
<BODY>
Hello, <%= session.getAttribute( "theName" ) %>
</BODY>
</HTML>
如果你打開兩種不同的浏覽器,或者從兩台不同的機器上運行兩個浏覽器,你可以在一個浏覽器中放置一個名字,而在另外一個浏覽器中放置另外的名字,但是兩個名字都將被跟蹤。Session保持跟蹤直到超時,這時它就會假設用戶沒有訪問網站了,所以就取消了session。
最後再布置一下本教程的聯系:利用session,在上面的例子中增加一個用戶的“age”屬性。