我没有清楚地理解你的问题,但我想我有一个类似的问题。我希望它对你有帮助。
我有我的 GwtPage.html 和 web.xml 中保护的所有 GWT 东西。
当我第一次访问http://example.com/GwtPage.html时,容器的安全性将我发送到 login.jsp。登录完成后,我被发送到 GwtPage.html,所以一切都很好。
但是 GwtPage.html 第二次被浏览器缓存并且容器没有向我发送 login.jsp。所以我做了以下事情:我只用一行创建了 index.jsp:
<%
response.sendRedirect("GwtPage.html");
%>
并将其添加到安全资源列表中。
浏览器不会缓存它,因此容器总是向我发送登录页面。
第二个好处是 GwtPage.html 仍然被浏览器缓存,这是非常好的,因为它很重。
我的 web.xml:
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- Security -->
<security-constraint>
<web-resource-collection>
<web-resource-name>Index Page</web-resource-name>
<url-pattern>/index.jsp</url-pattern>
</web-resource-collection>
<web-resource-collection>
<web-resource-name>Main Page</web-resource-name>
<url-pattern>/GwtPage.html</url-pattern>
</web-resource-collection>
<web-resource-collection>
<web-resource-name>Gwt entrails</web-resource-name>
<url-pattern>/Gwt/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>VIEWER</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>myrealm</realm-name>
<form-login-config>
<form-login-page>/LoginForm.jsp</form-login-page>
<form-error-page>/LoginError.jsp</form-error-page>
</form-login-config>
</login-config>