JSP Session管理

  本篇講述JSP中session的相關知識和管理方法;html

  先說說cookie與session

  在web中經常使用的兩種用戶信息管理方式:cookie session.web

  cookie是保存在用戶客戶端的數據,用於避免每次發送http請求時,連帶過多的數據,形成複雜化。因此Cookie保存在客戶端中,根據服務器端的要求,保存特定的內容,在每次http請求後,自動添加必定的內容。瀏覽器

  session是保存在服務器端的數據,用於驗證幾回請求是否屬於同一會話,在同一會話中,會避免進行沒必要要的驗證,保證用戶的操做連貫性。tomcat

  合理的使用session與cookie都會保證web應用的高能夠用性,以及良好的用戶體驗。可是沒必要要的操做也會影響到web安全風險和服務器的使用效率。安全

  session經常使用的方法

  session是JSP中的一個內置對象,能夠在JSP代碼中直接使用,他是HttpSession的實例,經常使用的方法以下:服務器

<% SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); Date d = new Date(session.getCreationTime()); session.setAttribute("username","xingoo"); session.setAttribute("password","123"); session.setAttribute("age","26"); //設置Session生命期限 //session.setMaxInactiveInterval(2);
        
    %> Session建立時間:<%=sdf.format(d) %><br> Session的ID編號:<%=session.getId() %><br> Session獲取:<%=session.getAttribute("username") %><br> Session中保存的屬性:<% String[] names = session.getValueNames(); for(int i=0;i<names.length;i++){ out.println(names[i]+"&nbsp;&nbsp;"); } %><br>
    <%
        //session.invalidate();//執行銷燬後,服務器直接就刪除了會話的相關內容;
    %>

  可獲得以下的結果:cookie

  session聲明週期

  session生命週期中包含3個階段:session

  1 建立eclipse

  在第一次用戶訪問JSP頁面時,會建立相應的session,保存在服務器中。以後的請求,服務器都會攜帶此session id進行校驗。函數

  2 活動

  在同一會話期間,打開新的連接都屬於同一會話。

  3 銷燬

  關閉瀏覽器;使用session.invalidate()銷燬session;會話過時

  管理session過時

  session默認時30分鐘過時。

  1 經過函數方法設置過時時間,單位爲秒

session.setMaxInactiveInterval(60);//單位是秒

  2 配置web.xml,單位爲分鐘

<session-config>
      <session-timeout>1</session-timeout>
  </session-config>

  經過tomcat監控管理session

  若是第一次登錄tomcat管理界面,會報用戶權限錯誤,須要手動爲tomcat設置用戶密碼以及用戶權限。

  在conf目錄中,打開tomcat-users.xml

  在tocmat-users標籤中添加下面兩行:

<tomcat-users>
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
</tomcat-users>

  manager-gui用於授予用戶 經過html管理tomcat 權限。

 

  登錄後點擊 tomcat manager

  在提示對話框中輸入用戶名密碼,技能看到下面的管理界面

  能夠看到當咱們訪問某個有session內容的頁面後,工程中的session數目變成了1.

  因爲在web.xml中配置了session的過時時間爲1分鐘,所以後面的時間也顯示了1分鐘。

  點擊 數字1超連接 ,就能進入session目錄!

  能夠看到session相關的內容,能夠點擊上面的按鈕,刷新session管理界面。

  點擊sessionid 超連接,能夠進入session的詳細頁面,參考以下:

  能夠根據該頁面,檢查session的相關內容等信息。

  注意:因爲我使用的是tomcat 6,因此其餘版本登錄位置可能有所不一樣。

 

  在Eclipse重啓Tomcat,tomcat-users.xml被重置

  出現上面現象的緣由是,你的eclipse在綁定tomcat後,工程中多了一個叫server的工程。

  打開該工程會發現有幾個配置文件,在eclipse重啓tocmat,會把這幾個配置文件覆蓋到咱們本身安裝的tocmat中。

  所以修改這裏的配置文件,便可!

相關文章
相關標籤/搜索