JSP Session管理


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

  先說說cookie與session

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

  cookie是保存在用戶客戶端的數據,用於避免每次發送http請求時,連帶過多的數據,造成復雜化。所以Cookie保存在客戶端中,根據服務器端的要求,保存特定的內容,在每次http請求后,自動添加一定的內容。

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

  合理的使用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();//執行銷毀后,服務器直接就刪除了會話的相關內容;
    %>

  可得到如下的結果:

  session聲明周期

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

  1 創建

  在第一次用戶訪問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中。

  因此修改這里的配置文件,即可!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM