HttpSession講解,

來源:互聯網
上載者:User

HttpSession講解,
1:session進行身分識別驗證的原理:

當用戶端第一次訪問伺服器的時候,此時用戶端的請求中不攜帶任何標識給伺服器,所以此時伺服器無法找到與之對應的

session,所以會建立session對象,當伺服器進行響應的時候,伺服器會將session標識放到回應標頭的Set-Cookie中,會以

key-value的形式返回給用戶端,例:JSESSIONID=7F149950097E7B5B41B390436497CD21;其中JSESSIONID是固定的,

而後面的value值對應的則是給該用戶端新建立的session的ID,之後瀏覽器再次進行伺服器訪問的時候,用戶端會將此key-value

放到cookie中一併請求伺服器,伺服器就會根據此ID尋找對應的session對象了;(當瀏覽器關閉後,會話結束,由於cookie消

失所以對應的session對象標識消失,而對應的session依然存在,但已經成為報廢資料等待GC回收了)

對應session的ID可以利用此方法得到:session.getId();

 

2:session的生命週期:

比方說可以通過這樣的方式使用:

 

3:常用方法樣本:

登入介面:

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10 11     SessionId:<%=session.getId() %>12     <br><br>13     14     IsNew:<%=session.isNew() %>15     <br><br>16     17     MaxInactiveInterval:<%=session.getMaxInactiveInterval() %>18     <br><br>19     20     CreateTime:<%=session.getCreationTime() %>21     <br><br>22     23     LastAccessTime<%=session.getLastAccessedTime() %>24     <br><br>25     26     <%27         Object username = session.getAttribute("username");28         if(username==null){29             username="";30         }31     %>32     33     <form action="hello.jsp" method="post">34         35         userName:<input type="text" name="userName" value="<%=username %>"/>36         <input type="submit" value="Submit"/>37     38     </form>39 40 </body>41 </html>

展示介面:

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10 11     12     SessionId:<%=session.getId() %>13     <br><br>14     15     IsNew:<%=session.isNew() %>16     <br><br>17     18     MaxInactiveInterval:<%=session.getMaxInactiveInterval() %>19     <br><br>20     21     CreateTime:<%=session.getCreationTime() %>22     <br><br>23     24     LastAccessTime<%=session.getLastAccessedTime() %>25     <br><br>26     27     Hello:<%=request.getParameter("userName") %>28     <br><br>29     30     <%31         session.setAttribute("username", request.getParameter("userName"));32     %>33     34     <a href="login.jsp">重新登陸</a>35     &nbsp;&nbsp;&nbsp;&nbsp;36     <a href="logout.jsp">登出</a>37 38 </body>39 </html>

登出介面:

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10 11     12     SessionId:<%=session.getId() %>13     <br><br>14     15     IsNew:<%=session.isNew() %>16     <br><br>17     18     MaxInactiveInterval:<%=session.getMaxInactiveInterval() %>19     <br><br>20     21     CreateTime:<%=session.getCreationTime() %>22     <br><br>23     24     LastAccessTime<%=session.getLastAccessedTime() %>25     <br><br>26     27     Bye:<%=request.getParameter("userName") %>28     <br><br>29         30     <%31         session.invalidate();32     %>33     34     <br><br>35     <a href="login.jsp">重新登陸</a>36 37 </body>38 </html>

首次進入登陸介面的時候:

在userName中輸入名稱Lily後點擊登入:

當再次點擊重新登陸時利用session進行資料回顯由於session沒有被登出,所以session不變:

當點擊登出按鈕後,登入時的session失效,原session對象被銷毀:

當再次點擊重新登陸或者是重新整理介面後,會建立新的session:

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.