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

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>


扫描二维码关注公众号,回复: 1641542 查看本文章

首先要记得加载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>

猜你喜欢

转载自blog.csdn.net/q418030645/article/details/80716739