如果我的用户被重定向到登录页面,如何使用,以便在他们登录后,他们被重定向到-original-destination页面(他们第一次点击的页面)?
答案 0 :(得分:7)
将最初请求的URL作为请求参数传递给重定向到登录页面。
String from = URLEncoder.encode(request.getRequestURI(), "UTF-8");
if (request.getQueryString() != null) {
from += "?" + request.getQueryString();
}
response.sendRedirect("login.jsp?from=" + from);
在login.jsp
中,将其作为隐藏输入字段传递给登录表单提交目标。
<input type="hidden" name="from" value="${fn:escapeXml(param.from)}" />
(注意:fn:escapeXml()
在HTML中重新显示用户控制的数据时阻止您使用XSS
在登录操作中,检查它是否存在然后相应处理。
String from = request.getParameter("from");
if (from != null && !from.isEmpty()) {
response.sendRedirect(from);
} else {
response.sendRedirect("home.jsp");
}