我已经有两个过滤器,通常会检查有效的会话。如果会话有效,它将重定向到ExpenseDetailsManagement.html
其他ExpenseManagementLogin.html
。 web.xml配置看起来像
<filter>
<filter-name>ExpenseAuthentication</filter-name>
<filter-class>com.pricar.hibernate.ExpenseAuthentication</filter-class>
</filter>
<filter>
<filter-name>ExpenseAuthenticationFilter</filter-name>
<filter-class>com.pricar.hibernate.ExpenseAuthenticationFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ExpenseAuthentication</filter-name>
<url-pattern>*/ExpenseDetailsManagement.html</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>ExpenseAuthenticationFilter</filter-name>
<url-pattern>*/ExpenseManagementLogin.html</url-pattern>
</filter-mapping>
上述两项工作正常。
应用程序路径看起来像
http://localhost:8080/Hibernate/ExpenseManagementLogin.html
如果我尝试使用http://localhost:8080/Hibernate
,则ExpenseManagementLogin.html
正在加载
即使我有一个有效的会话。
为此我尝试了一些网址映射模式,例如Hibernate/
,/Hibernate/
,/*
它以无限循环或资源未找到错误结束。
我的网络应用只有两个HTML页面,一个用于登录,另一个用于应用程序。
有什么建议吗?
答案 0 :(得分:1)
为什么使用两个过滤器?
删除ExpenseAuthentificationFilter
。在最简单的情况下,将ExpenseManagementLogin.html文件放在战争的根目录中。
添加Servlet或JSP作为登录表单目标。
将页面ExpenseDetailsManagement.html配置为默认页面。
然后可能出现以下情况:
http://localhost:8080/Hibernate
http://localhost:8080/Hibernate/ExpenseDetailsManagement.html
http://localhost:8080/Hibernate/ExpenseManagementLogin.html
。http://localhost:8080/Hibernate/ExpenseDetailsManagement.html
。您还可以使用JAAS来处理登录和身份验证。