Web Application有一个session时效的设定,当这个设定大于0的时候,系统会在这段时间里面没有捕获到任何操作,就会发生session time out。
request有2个getSession()方法,其中一个getSession(boolean)
当传入的boolean是true,那么如果当前的request的session不可用,那么就创建新的会话,如果存在就返回当前的会话。如果参数是false,那么在request的当前会话不存在的时候就返回null。
这样我们就可以很容易的联想到这个所谓的request的当前会话是否存在和session过期的联系,所以我们就可以"近似地"认为session不存在就是session过期了,那么我们就可以很容易地判断session是否过期了。方法如下:
if(request.getSession(false)==null){
System.out.println("Session has been invalidated!");
}else{
System.out.println("Session is active!");
}
可能大家注意到我上面有一个"近似地"字眼,也就是说存在特别情况。
这个特殊情况就是第一次请求还没有创建会话的时候,那么用这个方法返回的仍然是null,原因我想大家应该是显然的。
以上是个人拙见,希望大家指正。
if(request.getSession(false)==null){
sessin = request.getSession(true);
}
private boolean checkSession(HttpServletRequest request, HttpServletResponse response) {
HttpSession session = request.getSession(false);
String requestURI = request.getRequestURI();
String contextPath = request.getContextPath();
requestURI = requestURI.substring(contextPath.length());
if(requestURI.equals("/") ||
requestURI.equals("/login.jsp") ||
requestURI.equals("/login.do")||
requestURI.equals(this.errorPage)){
return true;;
}
if(session != null
&& session.getAttribute(this.objName) != null
&& session.getAttribute("year") != null){
return true;;
}else{
return false;
}
}
分享到:
相关推荐
alert("Your session will timeout in " + Math.round((timeout_sec - warn_sec) / 60000) + " minute, please click a button or navigate to another page to refresh your session before it expires.");...
如果没有,以下链接提供了有关启用安全性的有用信息:http://publib.boulder.ibm.com/infocenter/wpdoc/v6r0/index.jsp?topic=/com.ibm.wp.zos.doc/wpf/cu_cdsec_zos.html 【标签】:门户会话 【部分内容】:在...
<session-timeout>30</session-timeout> </session-config> ``` 这表示Session将在30分钟后自动失效。如果需要动态修改Session的超时时间,可以使用`setMaxInactiveInterval()`方法: ```jsp session....
<session-timeout>2</session-timeout> </session-config> ``` 这里设置的`2`表示分钟,意味着如果客户端在2分钟内没有向服务器发送请求,Session将失效。 2. **在Tomcat的全局配置中设置**: 如果你想为整个...
如果需要更改这个时间,可以在Web.config文件中设置`<sessionState>`元素的`timeout`属性,例如将Session的超时时间设置为40分钟: ```xml <sessionState timeout="40" /> ``` 这种方法虽然简单有效,但也有其...
- 自动失效:如果Session一段时间内未被使用,服务器可能会自动废弃这个Session,具体时间间隔可以通过配置web应用的`session-timeout`属性来设定。 5. Session的时间戳 - `getCreationTime()`: 返回Session创建...
<session-timeout>30</session-timeout> </session-config> ``` 不过,通常情况下,我们并不建议直接在Java代码中修改Session的超时时间,因为这会导致硬编码,不易维护。但若需临时修改,可以在JSP页面中使用以下...
request.setAttribute("message", "Session timeout!"); response.sendRedirect(response.encodeRedirectURL("/ajaxDone.jsp"); else { response.sendRedirect(response.encodeRedirectURL(this.loginUrl + ...
如果你想要为整个Tomcat服务器设置默认的Session超时时间,可以在Tomcat的`conf/web.xml`中找到`session-config`元素,如默认的30分钟,即`<session-timeout>30</session-timeout>`。这将作为所有应用的默认值,...
这里,`<session-timeout>`元素中的值表示Session的有效期,单位是分钟。例如,上面的例子设置了Session的默认有效期为2分钟。如果用户在这段时间内没有与服务器进行任何交互,则Session将会过期并被销毁。 #### 三...
在web.xml文件中,session的过期时间是通过<session-config>标签下的子标签<session-timeout>来设置的。这个值是以分钟为单位的整数,用来指定session的有效期。例如,如果你希望session在用户480分钟(即8小时)后...
- 在服务器的`web.xml`配置文件中,可以全局或针对特定应用设置Session超时时间,如`<session-timeout>30</session-timeout>`表示30分钟超时。 在购物车功能的实现上,主要涵盖以下模块: - **商品列表**:展示...
WEB.XML标准配置注解: <!--Servlet的映射,用来说明客户端IE中输入什么样的地址字符串对应到哪个Servlet的别名--> <!--在该例中在IE地址栏中... <session-timeout>10</session-timeout> </session-config>
当检测到`sessionstatus`为"timeout"时,显示提示信息并重定向用户到登录页面: ```javascript Ext.Ajax.on('requestcomplete', checkSessionStatus, this); function checkSessionStatus(conn, response, options...
out.println("This is the " + counter + " time you've visited this page."); %> ``` 在这个例子中,`!...%>`是声明部分,`<%...%>`是脚本元素,`<%=...%>`是表达式。 综上所述,这个实例涵盖了JSP开发的...
2. 如果`findHtml ,说明是Ajax请求,那么在session过滤器中,响应头添加`sessionstatus`为`timeout`,并返回一个包含错误信息的JSON对象,指明会话超时和重定向URL: ```java response.addHeader("sessionstatus...
<session-timeout>1</session-timeout> </session-config> ``` 在Easymall应用中,登陆状态可以通过将`User`对象保存到session中来实现。在`head.jsp`中,可以检查session中是否存在`user`属性来显示相应的登录或...
<session-timeout>30</session-timeout> </session-config> ``` #### 29. 新 Session 的概念 新 Session 指的是服务器已经创建,但客户端尚未保存 session ID 的状态。 #### 30. application 对象的应用场景 `...