`
Ben.Sin
  • 浏览: 234208 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JSP中判断session time out

阅读更多

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;
    }
}

分享到:
评论

相关推荐

    JSPsession超时提示

    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.");...

    Extending WebSphere Portal Session Timeout

    如果没有,以下链接提供了有关启用安全性的有用信息:http://publib.boulder.ibm.com/infocenter/wpdoc/v6r0/index.jsp?topic=/com.ibm.wp.zos.doc/wpf/cu_cdsec_zos.html 【标签】:门户会话 【部分内容】:在...

    jsp实验代码,使用session

    <session-timeout>30</session-timeout> </session-config> ``` 这表示Session将在30分钟后自动失效。如果需要动态修改Session的超时时间,可以使用`setMaxInactiveInterval()`方法: ```jsp session....

    JSP Session超时设置的实现方法

    <session-timeout>2</session-timeout> </session-config> ``` 这里设置的`2`表示分钟,意味着如果客户端在2分钟内没有向服务器发送请求,Session将失效。 2. **在Tomcat的全局配置中设置**: 如果你想为整个...

    利用Session验证是否用户登录

    如果需要更改这个时间,可以在Web.config文件中设置`<sessionState>`元素的`timeout`属性,例如将Session的超时时间设置为40分钟: ```xml <sessionState timeout="40" /> ``` 这种方法虽然简单有效,但也有其...

    7、JAVA培训之JSP基础05_session对象笔记[整理].pdf

    - 自动失效:如果Session一段时间内未被使用,服务器可能会自动废弃这个Session,具体时间间隔可以通过配置web应用的`session-timeout`属性来设定。 5. Session的时间戳 - `getCreationTime()`: 返回Session创建...

    8.session机制.doc

    <session-timeout>30</session-timeout> </session-config> ``` 不过,通常情况下,我们并不建议直接在Java代码中修改Session的超时时间,因为这会导致硬编码,不易维护。但若需临时修改,可以在JSP页面中使用以下...

    Ajax请求session超时处理流程

    request.setAttribute("message", "Session timeout!"); response.sendRedirect(response.encodeRedirectURL("/ajaxDone.jsp"); else { response.sendRedirect(response.encodeRedirectURL(this.loginUrl + ...

    jsp-63338.pdf

    如果你想要为整个Tomcat服务器设置默认的Session超时时间,可以在Tomcat的`conf/web.xml`中找到`session-config`元素,如默认的30分钟,即`<session-timeout>30</session-timeout>`。这将作为所有应用的默认值,...

    session网页有效期

    这里,`<session-timeout>`元素中的值表示Session的有效期,单位是分钟。例如,上面的例子设置了Session的默认有效期为2分钟。如果用户在这段时间内没有与服务器进行任何交互,则Session将会过期并被销毁。 #### 三...

    jsp中session过期设置及web.xml配置学习

    在web.xml文件中,session的过期时间是通过<session-config>标签下的子标签<session-timeout>来设置的。这个值是以分钟为单位的整数,用来指定session的有效期。例如,如果你希望session在用户480分钟(即8小时)后...

    JSP版的购物车源码+分析

    - 在服务器的`web.xml`配置文件中,可以全局或针对特定应用设置Session超时时间,如`<session-timeout>30</session-timeout>`表示30分钟超时。 在购物车功能的实现上,主要涵盖以下模块: - **商品列表**:展示...

    JSP Web.xml标准配置内容

    WEB.XML标准配置注解: <!--Servlet的映射,用来说明客户端IE中输入什么样的地址字符串对应到哪个Servlet的别名--> <!--在该例中在IE地址栏中... <session-timeout>10</session-timeout> </session-config>

    Extjs 4.1 (MVC) 如何动态加载控制层以及session 过期该如何处理

    当检测到`sessionstatus`为"timeout"时,显示提示信息并重定向用户到登录页面: ```javascript Ext.Ajax.on('requestcomplete', checkSessionStatus, this); function checkSessionStatus(conn, response, options...

    Jsp中的常用功能

    out.println("This is the " + counter + " time you've visited this page."); %> ``` 在这个例子中,`!...%>`是声明部分,`<%...%>`是脚本元素,`<%=...%>`是表达式。 综上所述,这个实例涵盖了JSP开发的...

    界面 ext 4.1 mvc框架 动态加载控制层 后台session 过期处理

    2. 如果`findHtml ,说明是Ajax请求,那么在session过滤器中,响应头添加`sessionstatus`为`timeout`,并返回一个包含错误信息的JSON对象,指明会话超时和重定向URL: ```java response.addHeader("sessionstatus...

    Session.docx

    <session-timeout>1</session-timeout> </session-config> ``` 在Easymall应用中,登陆状态可以通过将`User`对象保存到session中来实现。在`head.jsp`中,可以检查session中是否存在`user`属性来显示相应的登录或...

    JSP面试题--基础

    <session-timeout>30</session-timeout> </session-config> ``` #### 29. 新 Session 的概念 新 Session 指的是服务器已经创建,但客户端尚未保存 session ID 的状态。 #### 30. application 对象的应用场景 `...

Global site tag (gtag.js) - Google Analytics