如何对包含的页面使用 Java EE 过滤器?
How use a Java EE Filter with included pages?
我是使用 Java EE 过滤器的新手,我对它们有疑问。
我想创建一个过滤器,在加载我网站 (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 次(1 次用于 index.jsp,3 次用于包含)。
如何解决这个问题,使其只调用一次 cookie 过滤器?有任何想法吗?我快被它气死了...
谢谢!
尝试改用下一个过滤器配置:
<filter-mapping>
<filter-name>MainFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
我是使用 Java EE 过滤器的新手,我对它们有疑问。
我想创建一个过滤器,在加载我网站 (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 次(1 次用于 index.jsp,3 次用于包含)。
如何解决这个问题,使其只调用一次 cookie 过滤器?有任何想法吗?我快被它气死了...
谢谢!
尝试改用下一个过滤器配置:
<filter-mapping>
<filter-name>MainFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>