我使用Java EE过滤器有点新手,我对它们有疑问。
我想创建一个Filter,当我的站点(JSP)的每个网页都被加载时,它会做一些事情。例如,如果我想访问 index.jsp ,首先加载Filter,然后加载index.jsp。对于concact.jsp,sales.jsp等也一样。
出于这个原因,我决定在 web.xml :
中使用此代码<filter-mapping>
<filter-name>MainFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
问题是我的大多数JSP都包含在其他辅助JSP中,比如导航栏,页脚消息等等。所以,我的index.jsp会是这样的:
<html>
<head>
...
</head>
<body>
<%@include file="/WEB-INF/includes/header.jsp"%>
<%@include file="/WEB-INF/includes/navbar.jsp"%>
// jsp/html/js stuff here...
<%@include file="/WEB-INF/includes/footer.jsp"%>
</body>
</html>
因此,如果我调用index.jsp,则会调用4次过滤器(index.jsp为1,包含为3)。
我怎么能解决这个问题只对cookie过滤器调用一次?有任何想法吗?我生气了......
谢谢!
答案 0 :(得分:1)
尝试使用下一个过滤器配置:
<filter-mapping>
<filter-name>MainFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>