wgz_wlky
2016-07-30 17:01
采纳率: 100%
浏览 2.1k
已采纳

你们在做session过期,要求用户重新登录是怎么做的?

我用的是ssh,和easyui。我的想法是在后台设置before增强,判断session中的用户是否失效,如果失效就抛出异常,并通过action result返回视图结果界面。

问题来了:我的数据交互是type json,导致没有办法通过struts重新跳转到登录的JSP页面(搞了一天了图片说明)。而且在JS里写跳转链接也不太现实。

求大神救我脱离苦海图片说明

....
手机发布时卡了一下,结果竟然刷屏了!!!!
吓得我赶紧登电脑删除多余提问。简直了

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • 毕小宝 2016-07-30 22:33
    已采纳

    1 一般都是用过滤器Filter,拦截用户的所有请求,如果没有登陆会话信息,就跳转到登陆页面。
    2 需要配置web.xml中配置会话超时时间

     <session-config>
            <session-timeout>3</session-timeout>
        </session-config>
    

    那么浏览器就会自动定时清理Session中的属性信息,那么就可以在Filter中判断是否有会话信息以此判断会话是否过期。

    打赏 评论
  • threenewbee 2016-07-30 17:30

    客户端弹出jquery的对话框,ajax方式重新登录。csdn就是这么做的。

    打赏 评论
  • Miki_zhangyy 2016-07-30 17:34

    不用跳转,直接ajax去请求判断一下,如果过期就直接在你也没提示元素标签刷新一下提示语,不用整个页面刷新

    打赏 评论
  • yinbucheng 2016-07-31 01:17

    你可以使用状态模式,即没登入时所有的操作都是跳转到登入界面,如果登入就执行相应操作。具体怎么用可以百度下。。。
    你先根据session判断是否登入

    打赏 评论
  • 超时输出特殊字符串,客户端获取内容判断下是否超时的内容,是就js定向到登录页面,参考:easyui请求页面拦截跳转超时提示

    打赏 评论
  • GreenRookie 2016-08-01 03:29

    http://blog.csdn.net/fiangasdre/article/details/51802625 看看我这篇文章 很简单的一种方式

    打赏 评论

相关推荐 更多相似问题