网站上有些页面是需要用户登录后才能访问的,用户点击之后在后台判断到用户没有登录。跳转到登录页面,用户登录成功之后,应该返回用户登录前访问的页面,这个跳转方式有哪些呢?我用了JS的window.history.go(-2);和将用户被拦截时的路径记录下来,登录成功之后跳转该路径等两个方式,都行不通,请各位指点,还有些什么方法呢?比如说,购物,已经选了物品了,点“确定”到"goods!save.action"的时候服务器判断没有登录,拦截后重新登录,但你选购的物品已经没有了,因为都跳了几个页面了,然后你再跳到"goods!save.action"的时候就会报异常,这种情况如何解决?

解决方案 »

  1.   

    我的做法是用一个当判断到你没有登录跳转到登录页面的时候,在session中记录此时的页面,不用记录路径,比如此时的页面是修改密码,你就记录一个Modify,当登录成功后,从session中取出这个值,然后通过js判断这个值是什么,比如if(value=='nodify)window.loaction.href="...";else if(value=="").......'
      

  2.   

    配置个拦截器,每次提交请求的时候 验证是否已经登录 即验证SESSION 验证失败就跳登录页面
    我有个问题 如果一个账号 在不同地方登录呢?
      

  3.   

    建议你做个jsp,做为一个head,然后再你每个登录的页面都包含下, 这个head的jsp,先判断有没有session中的登录成功信息,有通过,没有,显示登录框,return;登录框提交到当前页面,如果登录成功则不写return; 可以试试!!!
      

  4.   

      以前搞过一个  可能有写粗糙  简单的将uri和参数获得后拼成字符串保存于session中  在登录action中从session中取 不为null 则返回session中保存的uri视图  在xml用el表达式写就行了. 另外购物的信息一般也是在session中吧 不应该这样就会消失  因为传递的参数也一并保存了 应该不会存在什么信息丢失的问题   不过当时做的比较简单 ..就简单说下思路
      

  5.   

    拦截的时候可以 从httpRequest里面取出请求的url吧
      

  6.   

    取request.getHearder("referer"),取得引用页,登陆后跳转到这个页面。
    如果取得的结果为空,则跳转到默认页面。
      

  7.   

    用FORM把参数装起来,现请求的时候一起发过去