广西最优秀的品牌网站建设公司,网站开发开票交税额,网站后台如何修改密码,网站颜色搭配实例前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。点击跳转到教程。
Session一直是我们做web项目经常使用的#xff0c;以前没太注意#xff0c;这次又细致的看了下#xff01; 1.session其实就是一个Ma…前些天发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。点击跳转到教程。
Session一直是我们做web项目经常使用的以前没太注意这次又细致的看了下 1.session其实就是一个Map键值对通过session.getAttribute(name);获得session中设置的参数 2.session的过期时间是从什么时候开始计算的是从一登录就开始计算还是说从停止活动开始计算 答从session不活动的时候开始计算如果session一直活动session就总不会过期。 从该Session未被访问,开始计时; 一旦Session被访问,计时清0; 3.设置session的失效时间 a)web.xml中 Xml代码 session-config session-timeout30/session-timeout /session-config b)在程序中手动设置 session.setMaxInactiveInterval(30 * 60);//设置单位为秒设置为-1永不过期
c)tomcat也可以修改session过期时间在server.xml中定义context时采用如下定义 Xml代码 Context path/livsorder docBase/home/httpd/html/livsorder defaultSessionTimeOut3600 isWARExpandedtrue isWARValidatedfalse isInvokerEnabledtrue isWorkDirPersistentfalse/ 4.如何判断session过没过期
request.getSeesion(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原因我想大家应该是显然的。 [java] view plain copy print? 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; } 比较好的一个办法 [java] view plain copy print? // request.getSession(false)null可以近似的判断是否过期如果已经过期那么返回的是null// 但是当第一次请求刚刚建立一个session的时候上述方法也返回null //所以应该这么做 if(nullrequest.getSession(false)){ if(request.getSession(true).isNew()){ } else{ System.out.println(session已经过期); } } isNew()是指是否一个新创的session当用户访问一个支持session的jsp网页时session被创建尽管有时session里面并没有任何东西。