代码之家  ›  专栏  ›  技术社区  ›  Pradyut Bhattacharya

将用户登录后重定向到请求的页面

  •  0
  • Pradyut Bhattacharya  · 技术社区  · 16 年前

    我有一个表单域身份验证 我用它来保护目录“secureuser”

    我的问题是: 如何将登录后的用户重定向到请求的页面

    详情:

    现在我可以使用这个登录用户(login.jsp)

        <form action="j_security_check" method="POST" id="login_from">
                <p>
        <input type="text" name="j_username" id="j_username" title="EmailID" />
                            </p>
                            <p>
        <input type="password" name="j_password" id="j_password" title="Password" />
                            </p>
                            <p>
        <input type="submit" name="Submit" id="Login" value="Login" />
                            </p>
                </form>
    

    现在,用户在同一会话浏览器中请求两个或多个页面(Firefox/IE选项卡) “secureuser/one.jsp” “secureuser/two.jsp” “secureuser/three.jsp”

    现在,用户得到一个登录表单页面,这是所有三个请求页面的login.jsp

    用户验证进入请求的页面“secureuser/one.jsp”

    现在,如果用户重新加载页面“secureuser/two.jsp”或“secureuser/three.jsp”,该页面现在显示login.jsp 他得到了相同的login.jsp页面

    如何在登录一次后将用户重定向到请求的页面 这样,重新加载后的页面login.jsp将转到引用的页面

    我可以在login.jsp页面中执行此操作

            java.security.Principal obj = request.getUserPrincipal();
    
            if(obj!=null) 
            {
                response.sendRedirect("secureUser/one.jsp");
            }
    

    但是我不能得到引用的页面,比如two.jsp或three.jsp

    谢谢 普拉杜特

    1 回复  |  直到 11 年前
        1
  •  0
  •   Phil Rykoff    16 年前

    你可以加一个

    <input type="hidden" name="referrer" value="[[value]]" />
    

    到您的登录表单并填充 [[value]] 和推荐人。登录时,或者当用户在打开登录表单时已经登录时,可以直接将用户重定向到该页面。

    您将通过调用此函数来获取引用者:

    request.getHeader("referer");