欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【J2EE学习笔记】Struts2过滤器的配置

程序员文章站 2022-05-15 10:58:01
...

Filter过滤器是Java中常用的技术,过滤器是用户请求和Web服务器之间的一层处理程序,可以对用户请求和处理程序响应的内容进行处理。过滤器能够在Servlet背调用之前检查Request对象,修改Request Header和Request内容。过滤器过滤的URL资源可以是Servlet、JSP、HTML文件,或是整个路径下的任何资源。多个过滤器可以构成一个过滤器链,当请求过滤器关联的URL时,过滤器链上的过滤器会挨个发生作用。过滤器往往用在进行权限控制、字符集处理等场合。

所有过滤器都继承自java.Servlet.Filter接口,有三个接口方法

(1)init(FilterConfig)

这是过滤器的初始化方法,在这个方法中可以通过FilterConfig参数读取web.xml中过滤器的初始化参数

(2)doFilter(ServletRequest,ServletResponse,FilterChain)

这个方法是过滤器的实际操作,FilterChain参数用于访问过滤器链的下一个过滤器

(3)destroy()

这是过滤器的销毁方法

过滤器编写完成后要在web.xml中配置

<filter>
  <filter-name>过滤器名</filter-name>
  <filter-class>过滤器对应的类</filter-class>
<!--初始化参数-->
  	<init-param>
  		<param-name>参数名称</param-name>
  		<param-value>参数值</param-value>
  	</init-param>
  </filter>

过滤器必须和特定的URL关联才能发挥作用,关联方式有三种:与URL关联;与URL目录下的所有资源关联;与Servlet关联

A.与URL资源关联

<filter-mapping>
    <filter-name>过滤器名</filter>
    <url-pattern>xxx.jsp</url-pattern>

B.与URL目录下的所有资源关联

<filter-mapping>
    <filter-name>过滤器名</filter>
    <url-pattern>/*</url-pattern>
</filter-mapping>

C.与Servlet关联

<filter-mapping>
    <filter-name>过滤器名</filter-name>
    <Servlet-name>Servlet名称</Servlet-name>
</filter-mapping>


首先要记得加载Struts2包到WebRoot\WEB-INF\lib路径下

然后在web.xml中加入如下代码

<display-name>jsp_struts2_javabean_jdbc</display-name>
  <!-- 配置Struts2框架的核心Filter过滤器 -->
  <filter>
  <!-- Filter的名字 -->
  <filter-name>struts2</filter-name>
  <!-- Filter的实例类, -->
  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    <!-- 配置Struts2框架默认载入的Action包结构 -->
  	<init-param>
  		<param-name>actionPackages</param-name>
  		<param-value>com.mycompany.myapp.actions</param-value>
  	</init-param>
  </filter>
  
  <!-- 配置Filter拦截的URL -->
  <filter-mapping>
  	<!-- 配置Struts2的核心FilterDispatcher拦截全部用户请求 -->
  	<filter-name>struts2</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>

相关标签: J2EE