Java中Servlet Filter在web.xml中配置时有2个用于过滤器的元素,分别是filter和filter-mapping。filter元素向系统注册一个过滤对象,filter-mapping元素指定该过滤对象所应用的URL。

filter元素

filter元素位于部署描述符文件(web.xml)的前部,所有filter-mapping、servlet或servlet-mapping元素之前。

<web-app> 
  <filter> 
    <filter-name>MyFilter</filter-name>  
    <filter-class>com.FilterClass</filter-class> 
  </filter>  
  <filter-mapping>...</filter-mapping> 
</web-app>

// icon  可选元素,它声明IDE能够使用的一个图象文件。
// filter-name  必需元素,它给过滤器分配一个选定的名字。
// display-name  可选元素,它给出IDE使用的短名称。
// description  可选元素,它给出IDE的信息,提供文本文档。
// filter-class  必需元素,它指定过滤器实现类的完全限定名。
// init-param  可选元素,它定义可利用FilterConfig的getInitParameter方法读取的初始化参数。单个过滤器元素可包含多个init-param元素。

filter-mapping元素

filter-mapping元素位于web.xml文件中filter元素之后serlvet元素之前。

<web-app> 
  <filter> 
    <filter-name>MyFilter</filter-name>
    <filter-class>com.FilterClass</filter-class> 
  </filter>  
  <filter-mapping> 
    <filter-name>MyFilter</filter-name>  
    <url-pattern>/login.jsp</url-pattern> 

  </filter-mapping> 
</web-app

//url-pattern  此元素声明一个以斜杠(/)开始的模式,它指定过滤器应用的URL。所有filter-mapping元素中必须提供 url-pattern或servlet-name。但不能对单个filter-mapping元素提供多个url-pattern元素项。如果希望过滤 器适用于多个模式,可重复整个filter-mapping元素。
//filter-name  这个必需的元素必须与用filter元素声明时给予过滤器的名称相匹配。
 //servlet-name  此元素给出一个名称,此名称必须与利用servlet元素给予servlet或JSP页面的名称相匹配。
//不能给单个 filter-mapping元素提供多个servlet-name元素项。如果希望过滤器适合于多个servlet名,可重复这个filter- mapping元素。

web.xml中配置过滤器示例

<filter>  
    <filter-name>loginFilter</filter-name>          //过滤器名称  
    <filter-class>com.edu.loginFilter</filter-class>  //过滤器类的包路径
<init—param> //可选 
    <param—name>参数名</param-name>//过滤器初始化参数
    <param-value>参数值</param-value>  
</init—pamm>  
</filter> 
 
<filter-mapping>//过滤器映射  
    <filter-name>loginFilter</filter-name>  
<url—pattern>指定过滤器作用的对象</url-pattern>

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐