我正在使用Tomcat提供的表单身份验证,它运行正常。无论使用什么URL,都应该调用Dispatcher Servlet,这样我就可以根据使用的URL使用转发到默认页面或任何特定页面。 例如:
https://localhost:8443/myApp/List/ - >重定向到list.jsp或/ home / list
https://localhost:8443/myApp - >重定向到home.jsp或/ home
https://localhost:8443/myApp/adgsdg - >重定向到home.jsp或/ home
我的web.xml看起来像:
<!-- WELCOME FILE LIST -->
<welcome-file-list>
<welcome-file>/Home/Servlet</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>servlet.DispatcherServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/Home/Servlet</url-pattern>
</servlet-mapping>
<security-constraint>
<web-resource-collection>
<web-resource-name>Wildcard means whole app requires authentication
</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>tomcat</role-name>
</auth-constraint>
<user-data-constraint>
<!-- transport-guarantee can be CONFIDENTIAL, INTEGRAL, or NONE -->
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.html</form-login-page>
<form-error-page>/login-failed.html</form-error-page>
</form-login-config>
</login-config>
welcome-file-list似乎没有效果。我希望这可能是一个默认位置,在成功登录后重定向,但Tomcat保存请求URL并重定向到它。 当我在servlet映射中使用/ *时,身份验证不起作用。
如何在成功登录表单后实现重定向?
答案 0 :(得分:0)
<welcome-file-list>
是打开webapp
页面时可能会打开的页面,可能是Login
页面。您可以做的是在此页面上拨打Servlet
&#39;提交。在此LoginServlet
中,您可以拥有if/else
,其中如果条件成功且if
运行,则dispatch
将其发送到您的主页,如果条件失败并else
运行,您可以dispatch
到同一个Login
页面。希望这能解释你的怀疑。
您可以随时扩展这个想法以满足您的需求。
希望画一幅画。