在Servlet和JSP中成功验证后,自动重定向到先前请求的页面

时间:2015-05-25 10:45:23

标签: authentication servlets redirect

我有一个用Servlets和JSP开发的应用程序。 但这是我的问题:

没有登录我不希望任何JSP被渲染。当我请求特定的URL(某些JSP)时,我的代码应对其进行身份验证,如果失败则应将其重定向到登录页面,一旦登录成功,则应自动重定向先前请求的页面。

这通常发生在大多数网站上。 我们如何实现这个Servlet和JSP。

谢谢你,问候

1 个答案:

答案 0 :(得分:0)

您可以将原始请求网址作为参数传递到重定向网址,并在服务器端完成重定向操作后(在身份验证后),从请求参数中检索网址并重定向或转发给它。

Original request
-----------------

if(!authenticated){
   response.sendRedirect("/authURL?originalURL=somepath");
}

Authentication Request
---------------------

if(authenticationSuccessful){
    String originalURL = request.getParam("originalURL");
    if(originalURL != null){
        response.sendRedirect("/originalURL");
    }
}

另一种方法是使用重定向设置cookie。 Cookie值可以包含原始网址。