- 浏览: 3420671 次
- 性别:
- 来自: 珠海
文章分类
- 全部博客 (1633)
- Java (250)
- Android&HTML5 (111)
- Struts (10)
- Spring (236)
- Hibernate&MyBatis (115)
- SSH (49)
- jQuery插件收集 (55)
- Javascript (145)
- PHP (77)
- REST&WebService (18)
- BIRT (27)
- .NET (7)
- Database (105)
- 设计模式 (16)
- 自动化和测试 (19)
- Maven&Ant (43)
- 工作流 (36)
- 开源应用 (156)
- 其他 (16)
- 前台&美工 (119)
- 工作积累 (0)
- OS&Docker (83)
- Python&爬虫 (28)
- 工具软件 (157)
- 问题收集 (61)
- OFbiz (6)
- noSQL (12)
最新评论
-
HEZR曾嶸:
你好博主,这个不是很理解,能解释一下嘛//左边+1,上边+1, ...
java 两字符串相似度计算算法 -
天使建站:
写得不错,可以看这里,和这里的这篇文章一起看,有 ...
jquery 遍历对象、数组、集合 -
xue88ming:
很有用,谢谢
@PathVariable映射出现错误: Name for argument type -
jnjeC:
厉害,困扰了我很久
MyBatis排序时使用order by 动态参数时需要注意,用$而不是# -
TopLongMan:
非常好,很实用啊。。
PostgreSQL递归查询实现树状结构查询
session过期后自动跳转到登陆页http://blog.csdn.net/lovesomnus/article/details/49582885
session过期后自动跳转到登陆页 http://my.oschina.net/u/1432675/blog/297839
1、web.xml中添加过滤器配置
2、新建SessionFilter类,实现Filter接口。
3、客户端JS,用于ajax请求session超时
对于jquery
对于extjs的ajax请求
如果使某个ajax请求不受全局方法的影响,那么可以在使用$.ajax()方法时,将参数中的global设置为false,jquery代码如下:
session过期后自动跳转到登陆页 http://my.oschina.net/u/1432675/blog/297839
1、web.xml中添加过滤器配置
<filter> <filter-name>sessionFilter</filter-name> <filter-class>com.orchestrall.web.helper.session.SessionFilter</filter-class> </filter> <filter-mapping> <filter-name>sessionFilter</filter-name> <url-pattern>/actions/*</url-pattern> </filter-mapping>
2、新建SessionFilter类,实现Filter接口。
public class SessionFilterimplements Filter { public void destroy() { // TODO Auto-generated method stub } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) request; HttpServletResponse httpResponse = (HttpServletResponse) response; HttpSession session = httpRequest.getSession(); // 登陆url String loginUrl = httpRequest.getContextPath() + "/admin/login.jsp"; String url = httpRequest.getRequestURI(); String path = url.substring(url.lastIndexOf("/")); // 超时处理,ajax请求超时设置超时状态,页面请求超时则返回提示并重定向 if (path.indexOf(".action") != -1 && session.getAttribute("LOGIN_SUCCESS") == null) { // 判断是否为ajax请求 if (httpRequest.getHeader("x-requested-with") != null && httpRequest.getHeader("x-requested-with") .equalsIgnoreCase("XMLHttpRequest")) { httpResponse.addHeader("sessionstatus", "timeOut"); httpResponse.addHeader("loginPath", loginUrl); chain.doFilter(request, response);// 不可少,否则请求会出错 } else { String str = "<script language='javascript'>alert('会话过期,请重新登录');" + "window.top.location.href='" + loginUrl + "';</script>"; response.setContentType("text/html;charset=UTF-8");// 解决中文乱码 try { PrintWriter writer = response.getWriter(); writer.write(str); writer.flush(); writer.close(); } catch (Exception e) { e.printStackTrace(); } } } else { chain.doFilter(request, response); } } @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub } }
3、客户端JS,用于ajax请求session超时
对于jquery
<script type="text/javascript"> $(document).ajaxComplete(function(event, xhr, settings) { if(xhr.getResponseHeader("sessionstatus")=="timeOut"){ if(xhr.getResponseHeader("loginPath")){ alert("会话过期,请重新登陆!"); window.location.replace(xhr.getResponseHeader("loginPath")); }else{ alert("请求超时请重新登陆 !"); } } }); </script>
对于extjs的ajax请求
Ext.Ajax.on('requestcomplete',checkUserSessionStatus, this); function checkUserSessionStatus(conn,response,options){ if(response.getResponseHeader("sessionstatus") == 'timeout'){ if(response.getResponseHeader("loginPath")){ alert("会话过期,请重新登陆!"); window.top.location.href = response.getResponseHeader("loginPath"); }else{ alert("请求超时请重新登陆 !"); } } }
如果使某个ajax请求不受全局方法的影响,那么可以在使用$.ajax()方法时,将参数中的global设置为false,jquery代码如下:
$.ajax({ url:"test.html", global:false//不触发全局ajax事件 })
发表评论
-
JSTL 的 if else : 有 c:if 没有 else 的处理
2016-06-14 09:52 1332http://blog.csdn.net/xiyuan1999 ... -
基于spring,Atomikos,mybatis的分布式动态数据源JTA实现
2016-04-27 16:37 1077原文;http://www.blogjava.net/zuxi ... -
Servlet3.0新特性@WebServlet
2016-03-09 21:35 1608http://my.oschina.net/u/2416019 ... -
Spring+Mybatis+Velocity
2015-12-17 09:55 967原文: http://my.oschina.net/langh ... -
Freemarker页面语法
2015-12-03 10:29 1209Freemarker页面语法http://ji ... -
apache shiro - 动态创建filterchaindefinitions
2015-12-01 14:33 2554http://www.360doc.com/content/1 ... -
java代码中获取classpath路径
2015-11-27 11:40 2014http://blog.csdn.net/magi1201/a ... -
springmvc整合 sitemesh + freemarker+spring ioc
2015-11-24 19:30 2309使用freemarker.properties配置方式: ht ... -
Sitemesh 3 的使用及配置
2015-11-17 09:33 1046Sitemesh 3 的使用及配置 http://www.cn ... -
SpringMVC + Mybatis + Shiro 权限整合
2015-11-14 14:06 8746详细见参考文章: 基于Spring + Spring MVC ... -
Servlet中listener(监听器)和filter的总结
2015-04-10 23:14 1184http://my.oschina.net/ydsakyclg ... -
Spring Security 3.2.x 配置
2014-06-15 22:02 3908使用 Spring Security 保护 Web 应用的安全 ... -
SpringMVC + WebSocket + X
2014-06-12 10:45 4605官方文档:WebSocket Support http://d ... -
JSTL empty判断空值
2014-06-06 08:51 1336http://sphinx-yong.iteye.com/bl ... -
weblogic getServletContext().getRealPath("/")
2014-05-30 08:35 1849http://1185734295.iteye.com/blo ... -
上传文件到虚拟路径下
2014-05-16 23:44 1996http://guard.iteye.com/blog/206 ... -
在 Web 项目中应用 Apache Shiro
2014-03-17 15:00 1081http://www.ibm.com/developerwor ... -
SpringMVC3.2.x + Hibernate4.2.x + ecache + Spring Security 3.0.5
2014-01-20 09:24 1349这只是部分代码,一些代码可以参考:http://panyong ... -
SpringMVC3.2.x + Hibernate4.2.x + ecache
2013-05-18 12:50 2118附件是源码 pom.xml ---------------- ... -
ELResolver Escapes JSP EL Values To Prevent Cross-Site Scripting
2013-04-25 20:15 2313JspFactory.getDefaultFactory()返 ...
相关推荐
Java Web实现session过期后自动跳转到登陆页功能【基于过滤器】 本文主要介绍了Java Web实现session过期后自动跳转到登陆页功能,涉及java过滤器针对session的判断与跳转相关操作技巧。 一、建立基本过滤器 要...
以上代码片段展示了如何通过过滤器实现Session过期后的自动跳转。这种方式更加灵活,可以直接控制HTTP响应,确保用户在Session过期后能够被正确地引导回登录页面,重新验证其身份。在实际应用中,还需要考虑其他因素...
例如,可以显示一个友好的提示,告知用户由于Session过期需要重新登录,并提供一键返回按钮。同时,登录页面应设计为可直接从登录状态快速恢复到原页面,且能自动填充之前输入的表单数据。 6. 安全性考虑: 在处理...
- 自动跳转到登录页:服务器可以设置拦截器或过滤器,当检测到Session过期,直接重定向到登录页面。 - 提示信息:告知用户Session已过期,需要重新登录。 4. **Session与Cookie的关系**:Session依赖于Cookie来...
当Session过期后,由于控制器无法正常初始化,可能导致某些功能无法正常工作。这个问题的解决方案通常涉及到前后端的配合。 在后端处理方面,我们可以通过检查请求头(request headers)中的`accept`字段来判断请求...
"项目访问时间过长session过期提醒"这个话题涉及到的是如何配置Web应用程序,以便在用户的会话过期时自动跳转到特定的过期页面,提醒用户重新登录。下面我们将详细讲解实现这一功能的关键步骤和技术。 首先,我们...
综上所述,通过使用过滤器来处理session过期后的重定向,并结合JavaScript来控制iframe框架的跳出和页面的刷新,可以有效地解决JSP应用中的会话管理和页面布局问题。这不仅可以提升系统的安全性,同时也能改善用户...
所以通常设置合理的Session过期时间,如`Session.Timeout = 20;`表示20分钟无操作后Session失效。 3. **结合Cookie和Session**: - 有时,为了兼顾用户体验和安全性,开发者会选择结合Cookie和Session。登录成功后...
在ASP.NET开发中,有时我们需要实现页面在一定时间后自动跳转到其他页面,这通常用于用户会话超时或者完成某操作后需要转移场景的情况。本教程将介绍两种实现方式:一是通过服务器端的Session,二是利用客户端的...
3. **登录成功后的处理**:当用户认证成功后,系统通常会自动跳转到一个新的页面,例如主页或者用户个人中心。这种跳转可以通过多种方式实现: - **Servlet响应重定向(Redirect)**:使用`response.sendRedirect...
我们会在登陆成功后调用sessionUtil文件中的setSession,sessionUtil下面写的有 import sessionUtil from '@/utils/sessionutil' sessionUtil.setSession("userInfo", '2'); 在routerutil.js文件中 import sessi
这样,当Ajax请求因Session超时导致服务器返回302时,前端能够捕获到这个错误并自动跳转到登录页面,而不是让页面保持在原来的视图中,提供良好的用户体验。 总结来说,结合后端的Session过滤器和前端的Ajax重写,...
2. 会话过期:默认情况下,Session会在一段时间无活动后自动销毁,需要合理设置过期时间。 3. 不能跨域共享:每个域名有自己的Session,不同域间的页面无法直接共享Session数据。 4. 安全性:Session信息存储在...
如果用户在这段时间内没有进行任何操作,Session将会自动过期。 3. **应用程序池回收**:IIS的应用程序池默认每1740分钟(约29小时)会自动重启一次,这会导致所有用户的状态信息丢失。 4. **多台服务器部署**:在...
在`sessionrun.jsp`页面中,我们可以设置一个友好的提示信息,告知用户session已过期,建议他们在2秒后自动跳转回首页(或指定的登录页面)。这里使用JavaScript实现延迟跳转,同时弹出警告框通知用户。 通过以上...
知识点四:实现Session过期提示 当Session即将过期或已过期时,需要给用户提供提示。在代码示例中,如果检测到`lefttime`等于0,就会停止定时器,并通过JavaScript弹出一个警告框提示用户。如果用户确认,则通过`...
`表示30分钟后Session自动失效。 2. Session复制与集群:在多台服务器的集群环境下,需要实现Session复制或共享,确保所有服务器都能访问到同一份Session数据。 3. Session管理:过多的Session会消耗大量内存,可以...
Session的核心概念是“会话”,它在用户打开网站并开始浏览网页时被创建,直到用户关闭浏览器或者Session过期。每个Session都与特定的用户相关联,通过SessionID来区分不同的用户。当用户在网站内跳转页面时,...
`Session_End`事件是在Session过期或放弃时触发的,而`Response.Redirect`和`Server.Transfer`仅涉及页面间的跳转,并不涉及Session的销毁。因此,在这种情况下,`Session_End`事件不会被触发。如果需要执行某些清理...