如果用户继续使用get_appointment.jsp,但是由servlet重定向到login.jsp(因为他没有登录)。成功登录后,他应该返回到get_appointment.jsp,因为初始化是从那里完成的。
现在应该使用什么机制来跟踪请求最初来自哪个页面,可以将其转发到不同的jsps和servlet,然后用户应该再次返回到原始(初始页面)。
在一般规则中,最常见也是更好的方式。对于我解释过的当前的情感,有没有?有很多,会话属性,url重写,全局和应用程序,servlet上下文。
如果用户手动更改地址栏并转到其他位置,该怎么办?会话属性然后让他在一段时间后登陆到一些不正确的页面。
什么是正确的方式?.................
用于会话。如果iam在verfiycreds.java中。有没有办法将请求发送到的页面地址发送到verifycred.java(即login.jsp)?
答案 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中。
要回答您的问题,这是一种正确的方法。看看他们实现它的方式,查看模式,查看代码。