web.xml之Filter配置

本文介绍了在使用Struts2框架时如何正确配置自定义Filter,确保其在StrutsPrepareAndExecuteFilter之前加载,以便有效拦截请求。文章通过具体实例说明了如何在一个Filter中设置多个mapping。
注意事项:
1,自定义Filter配置filter-mapping时,必须放到struts2即StrutsPrepareAndExecuteFilter或FilterDispatcher上方,否则无效。

实例:一个Filter配置多个Mapping
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
### 配置过滤器 在 `web.xml` 文件中配置过滤器涉及两个主要部分:定义过滤器及其映射关系。通过 `<filter>` 和 `<filter-mapping>` 元素来完成这一过程[^1]。 #### 定义过滤器 要创建一个新的过滤器,需使用 `<filter>` 标签并提供必要的子标签: - **<filter-name>**: 指定过滤器的名字,在整个应用程序范围内唯一。 - **<filter-class>**: 提供实现 javax.servlet.Filter 接口的具体类的全限定名。 示例如下所示: ```xml <filter> <filter-name>LoginFilter</filter-name> <filter-class>com.ygj.control.LoginFilter</filter-class> </filter> ``` 还可以为过滤器设置初始化参数,这可以通过添加 `<init-param>` 子元素来完成。这些参数允许传递给过滤器实例化时使用的额外信息。 #### 映射过滤器到 URL 模式 一旦定义好了过滤器,则需要告诉服务器哪些请求应该被此过滤器处理。这是由 `<filter-mapping>` 实现的,它同样有两个重要的子标签: - **<filter-name>**: 应与此过滤器定义中的名字相匹配。 - **<url-pattern>**: 描述应触发过滤器执行的一组URL模式。 下面是一个完整的例子: ```xml <filter-mapping> <filter-name>LoginFilter</filter-name> <url-pattern>/secure/*</url-pattern> </filter-mapping> ``` 上述配置意味着任何以 `/secure/` 开头的HTTP请求都将经过名为 LoginFilter 的过滤器处理[^3]。 除了传统的 XML 方式外,也可以利用 Java 注解的方式简化配置工作量[@WebFilter(filterName="EncodingFilter", urlPatterns={"*.action"})][^2];不过本话题聚焦于基于 web.xml 的方式。 对于某些特定类型的过滤功能,比如解决跨域资源共享(CORS)问题或者统一字符集编码转换等场景,可能还需要引入第三方库的支持,并相应调整依赖项列表[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值