使用servlet和jsps跟踪页面请求

时间:2012-12-28 19:13:23

标签: java jsp servlets

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

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

在一般规则中,最常见也是更好的方式。对于我解释过的当前的情感,有没有?有很多,会话属性,url重写,全局和应用程序,servlet上下文。

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

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

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

2 个答案:

答案 0 :(得分: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());
    ...
}

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

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

答案 1 :(得分:0)

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

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