如何配置Tomcat在登录后始终指向index.jsp?

如何配置Tomcat在登录后始终指向index.jsp?,tomcat,jakarta-ee,login,Tomcat,Jakarta Ee,Login,目前,Tomcat的登录支持将用户重定向回应用程序发现他们没有登录时的初始位置 对于这个特定的应用程序,我需要强制他们始终返回index.jsp 我很确定这是WAR的web.xml中的一个简单配置选项,但我在google中找不到答案。这是您无法在web.xml中配置的,因为它不是标准的一部分。对于Tomcat(在版本6.0.14上测试),您可以通过在login.jsp上添加下一个代码来强制用户返回index.jsp。它会将url中没有“login”参数的每个请求重定向到/index.jsp?lo

目前,Tomcat的登录支持将用户重定向回应用程序发现他们没有登录时的初始位置

对于这个特定的应用程序,我需要强制他们始终返回
index.jsp


我很确定这是WAR的
web.xml
中的一个简单配置选项,但我在google中找不到答案。

这是您无法在web.xml中配置的,因为它不是标准的一部分。对于Tomcat(在版本6.0.14上测试),您可以通过在login.jsp上添加下一个代码来强制用户返回index.jsp。它会将url中没有“login”参数的每个请求重定向到/index.jsp?login页面。由于重定向确实具有“login”参数,因此登录页面将显示用户

这不是一个安全的解决方案。如果有人请求页面并添加登录参数,他将被重定向。因此:

/showPerson?id=1234将重定向到/index.jsp?登录

/showPerson?id=1234?登录将不会重定向到/index.jsp?登录

位于login.jsp顶部的代码:

<%
if (request.getParameter("login") == null) {
    response.sendRedirect(request.getContextPath() + "/index.jsp?login");
    return;
}
%>


不使用“login”参数,您可能可以使用cookie。您可以通过为登录参数(login=randomvalue)创建一个随机值并将该值存储在会话对象中以供比较,从而使其更加安全。

更好的解决方案可能是使用servlet过滤器。 然后,您可以检查j_用户名/j_密码,以及成功登录并将它们重定向到您希望它们去的地方