如果他已登录
,我想阻止用户返回登录页面 if (req.getRequestURI().indexOf("Login.jsp") != -1 || req.getRequestURI().indexOf("LoginE.jsp") != -1) {
System.out.println("trtying to go to login");
//what should I write here to redirect the user to the page he was already in ??
}
答案 0 :(得分:1)
只需检查用户是否已登录,然后重定向到所需的目标页面。假设user
表示您从会话中抓取的登录用户,这是一个示例:
if (req.getRequestURI().indexOf("Login.jsp") != -1 || req.getRequestURI().indexOf("LoginE.jsp") != -1) {
if (user != null) {
response.sendRedirect("already-logged-in.jsp");
return;
}
}
该页面看起来像
<p>You appears to be already logged in. If you want to login as someone else,
please use the <a href="logout">logout</a> link to logout, or navigate to a
different page by menu on the left hand side.</p>
当用户已经登录时,我也会完全隐藏登录页面的链接,只是为了防止用户意外地点击该内容或其他内容。
<c:if test="${empty user}">
<a href="Login.jsp">Login</a>
</c:if>
无关,Login.jsp
和LoginE.jsp
有什么问题?是一个用母语,另一个用英语吗?您可能希望在JSTL本地化设施上投入一些时间。 How to internationalize a Java web application?
答案 1 :(得分:0)
根据用户访问Login.jsp请求的方式,您可能丢失了有关上一个请求的信息。您是否尝试查看“Referer”标题以查看上一页是否在那里?您可以使用req.getHeaders("Referer");
如果没有引荐来源信息,则必须为用户管理一个Session属性,称为“lastRequestURL”。这样您就可以使用以下代码在上面的代码中检索它:req.getSession().getAttribute("lastRequestURL")
并将用户重定向到该值。