0

如果用户继续 get_appointment.jsp 但被 servlet 重定向到 login.jsp(因为他没有登录)。成功登录后,他应该返回到 get_appointment.jsp,因为正在从那里完成初始化。

现在应该使用什么机制来跟踪请求最初来自哪个页面,可能会被转发到不同的jsps和servlet,然后用户应该再次返回到原​​始(初始页面)。

在一般规则中,最常见和更好的方法是什么。我解释的当前情景中是否有任何一个?有很多,会话属性,url重写,全局和应用程序,servlet上下文。

如果用户手动更改地址栏并转到其他地方怎么办。session 属性然后让他在一段时间后登陆到一些不正确的页面。

什么是正确的方法?......

会话。如果 iam 在 verfiycreds.java 中。有没有办法获取将请求发送到verifycred.java(即login.jsp)的页面地址?

4

2 回答 2

0

在 spring-security 中,请求被保存在请求被拦截的地方,因为它是未经授权的 - 在ExceptionTranslationFilter中。认证成功后,将调用成功处理程序SavedRequestAwareAuthenticationSuccessHandler / API 。此处理程序重定向到请求的 URL,该 URL 由 ExceptionTranslationFilter 预先存储在 HttpSession 中。

要回答您的问题,这是正确的方法。看看他们实现它的方式,看看模式,看看代码。

于 2012-12-28T22:13:25.623 回答
0

您可以将其保存在用户的会话中...

doGet(HttpServletRequest request, HttpServletResponse response) {
    // Could also be doPost(), depending on which you need.
    // Request and response are both abailable there as well.
    ...
    HttpSession session = request.getSession();
    session.setAttribute("referralURI", request.getRequestURI());
    ...
}

然后,您可以使用 检索 URI request.getSession().getAttribute("referralURI")

如果您想避免会话,您还可以将 URI 的相关部分作为获取参数传递给登录。

于 2012-12-28T19:27:04.443 回答