如何在包含的页面中使用 Java EE 过滤器?



我是使用Java EE过滤器的新手,我对它们有疑问。

我想创建一个过滤器,在加载我的网站(JSP(的每个网页时执行一些操作。例如,如果我想访问index.jsp,则首先加载过滤器,然后加载索引.jsp。康恰.jsp、销售.jsp等也是如此。

出于这个原因,我决定在web.xml中使用这段代码:

<filter-mapping>
<filter-name>MainFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>

问题是我的大多数 JSP 都包含在其他辅助 JSP 中,如导航栏、页脚消息等。所以,我的索引.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 次(1 次用于索引.jsp 次用于包含(。

如何解决此问题以仅向 cookie 过滤器调用一次?有什么想法吗?我快生

气了...谢谢!

尝试改用下一个过滤器配置:

<filter-mapping>
<filter-name>MainFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>

最新更新