jfinal中ajax操作session超时后重新登录后想进入上次的操作页面

晨儿哥1984 发布于 2016/04/25 19:37
阅读 718
收藏 1

@JFinal 你好,想跟你请教个问题:

呵呵,其实这个问题也不是jfinal相关的啦,呵呵,就是以最佳的用户体验为前提,ajax操作如果session超时后,用户重新登录成功后应该进入上次的ajax操作所在的页面而不是简单粗暴的进入网站首页

我目前想到2个方案:

方案1: 永不超时

在用redis做session后,其实就是在redis里面存一条没有timeout记录,没啥资源消耗,除非用户在进行ajax操作前,手动清除了浏览器缓存,否则这个session超时问题永远也不会出现

但是如果不用redis存session呢,那就是占用tomcat的jvm的内存了,也不好做集群,所以永不超时不适合这个场景

方案2:有超时时间

ajax操作遇到session超时后,用户重新登录后,跳转到该操作的所在页面,也就是header中的referer,因为你得先进入一个页面才能点击页面上的ajax链接,这里存在的问题就是在过滤器中获取header的referer是可以获取到的,但是如果之前这个页面带参数就没办法了,因为referer中不会有参数,那么在登录成功后就跳转不回去了,

例如:

ajax操作所在的页面为:/ask?type=law ,当执行该页面上的ajax操作后,过滤器中获取到的referer其实是http://localhost:8080/myproject/ask,后面的参数没法获取,所以登录成功后就跳转不回去了。

但是如果jfinal支持真正的restful,那么这个问题完全可以解决,比如ajax操作所在的页面为/ask/law,那么调用ajax操作在过滤器中获取到的referer就是/ask/law

不知道有没有一个好的方法来解决这个问题

加载中
0
如梦技术
如梦技术
该评论暂时无法显示,详情咨询 QQ 群:点此入群
如梦技术
如梦技术
nonono,我说的是在js里面跳转,就是当前页面,完全可以拿到所有参数
晨儿哥1984
晨儿哥1984
哥们还是你最热心,你没理解我意思,我要跳转ajax这个url所在的页面,而不是ajax这个url本身,要获取ajax这个url所在的页面,我是希望用referer,但是带参数情况就获取不到了
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部