struts2 session过期或无操作时自动返回登录
在做web上的b/s系统,用的是struts2+spring+hibernate。想要实现的是:
a)当用户登录系统中后一段时间无任何操作,比如15分钟,让其自动返回到登录页面。 b) session过期时,自动返回登录。 因为我在main.jsp 用的是iframe框架,系统登录进入后该页面将系统分成了左菜单栏,上栏和主工作区三个部分。这个main.jsp页面中没有body体,在页面中写 window.location.href='/login.jsp'貌似没起没用。所以无法让其自动刷新来判断session是否为空了。 (1)想法是加个过滤器来监测session是否为空,为空时让其跳转路径,但网上找了些代码,没有实现成功。 (2)至于在登录进主页面中时,也不知道如何判断用户无操作。有种是判断mousemove事件,但在这种框架中不起作用。 请教各位高手有什么好的想法,最好是有代码。网上找了好多,没有实现 11 个回答
谢谢各位了
2011-06-23 08:33
推荐: 0 次
有帮助?
请推荐
用struts2的拦截器就可以了
然后在struts.xml中给每个action配置拦截器,并声明一个全局的result,当session失效的时候拦截器会转发到登陆页面
2011-05-31 19:38
推荐: 0 次
有帮助?
请推荐
恩思路是这样的,在struts2中的web.xml中如何配置呢?
2011-05-31 13:32
推荐: 0 次
有帮助?
请推荐
使用filter可以达到你的要求 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { String url = ((HttpServletRequest) request).getRequestURL().toString(); //如果是非action操作或者登入登出操作直接返回,例如图片静态资源时不需要session信息 if (url.indexOf(".action")<1||(url.indexOf("login.action") > 0||url.indexOf("logout.action")>0)) { chain.doFilter(request, response); } //如果seesion不存在返回登陆页面 else if (((HttpServletRequest) request).getSession().getAttribute( "user") == null) { request.getRequestDispatcher("/index.jsp").forward(request, response); } } |
|