J2EE6 servlet session超时机制
生活随笔
收集整理的這篇文章主要介紹了
J2EE6 servlet session超时机制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
session超時機制
想一個問題
? 假設現在好多個用戶登錄,登錄后的信息都保存到session.。程序保存的session肯定是需要消耗內存的。如果內存日積月累那么session的內存會達到一個很龐大的地步。到底有沒有解決方法呢?
在一般系統登錄后,都會設置一個當前session失效的時間(默認30分鐘,如果30分鐘沒對響應的session操作則會銷毀)。
修改session超時機制
在web容器中設置(以tomcat為例)
在tomcat-7.0\conf\web.xml中設置,以下是tomcat7.0中默認配置:1
tomcat默認session超時時間為30分鐘,可以根據需要修改,負數或0為不限制session失效時間
這里要注意這個session設置的時間是根據服務器來計算的,而不是客戶端。所以如果在調試程序,應該是修改服務器端時間來測試,而不是客戶端
在工程的web.xml中設置15
<!--時間單位為分鐘--> <session-config><session-timeout>15</session-timeout></session-config>通過java代碼設置30
session.setMaxInactiveInterval(30*60);//以秒為單位,即在沒有活動30分鐘后,session將失
優先級:1<2<3
session.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body>${sessionScope.sessionkey } </body> </html>java:
package day45.com.test.class4;import java.io.IOException;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;@WebServlet("/SessionServlet") public class SessionServlet extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 測試session的超時時間req.getSession().setAttribute("sessionkey", "aaa");// session作用在使用范圍內,都是有效的。// java代碼修改超時時間req.getSession().setMaxInactiveInterval(10);// 以秒為單位req.getRequestDispatcher("class4/session.jsp").forward(req, resp);} }總結
以上是生活随笔為你收集整理的J2EE6 servlet session超时机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第三十八期:用Git帮助写作者更好地完成
- 下一篇: 总结3:IDEA中使用${pageCon