本篇講述JSP中session的相關知識和管理方法;html
在web中經常使用的兩種用戶信息管理方式:cookie 和 session.web
cookie是保存在用戶客戶端的數據,用於避免每次發送http請求時,連帶過多的數據,形成複雜化。因此Cookie保存在客戶端中,根據服務器端的要求,保存特定的內容,在每次http請求後,自動添加必定的內容。瀏覽器
session是保存在服務器端的數據,用於驗證幾回請求是否屬於同一會話,在同一會話中,會避免進行沒必要要的驗證,保證用戶的操做連貫性。tomcat
合理的使用session與cookie都會保證web應用的高能夠用性,以及良好的用戶體驗。可是沒必要要的操做也會影響到web安全風險和服務器的使用效率。安全
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]+" "); } %><br> <% //session.invalidate();//執行銷燬後,服務器直接就刪除了會話的相關內容; %>
可獲得以下的結果:cookie
session生命週期中包含3個階段:session
1 建立eclipse
在第一次用戶訪問JSP頁面時,會建立相應的session,保存在服務器中。以後的請求,服務器都會攜帶此session id進行校驗。函數
2 活動
在同一會話期間,打開新的連接都屬於同一會話。
3 銷燬
關閉瀏覽器;使用session.invalidate()銷燬session;會話過時
session默認時30分鐘過時。
1 經過函數方法設置過時時間,單位爲秒
session.setMaxInactiveInterval(60);//單位是秒
2 配置web.xml,單位爲分鐘
<session-config> <session-timeout>1</session-timeout> </session-config>
若是第一次登錄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後,工程中多了一個叫server的工程。
打開該工程會發現有幾個配置文件,在eclipse重啓tocmat,會把這幾個配置文件覆蓋到咱們本身安裝的tocmat中。
所以修改這裏的配置文件,便可!