zoukankan      html  css  js  c++  java
  • Servlet3.0学习总结(二)——使用注解标注过滤器(Filter)

    Servlet3.0提供@WebFilter注解将一个实现了javax.servlet.Filter接口的类定义为过滤器,这样我们在web应用中使用过滤器时,也不再需要在web.xml文件中配置过滤器的相关描述信息了。


      下面我们来创建一个过滤器,体验一下使用@WebFilter注解标注过滤器,如下所示:


      


      过滤器的代码如下:
    <pre name="code" class="java"><span style="font-size:14px;">
    </span>
    <span style="font-size:14px;">package me.gacl.web.filter;
    import java.io.IOException;
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.annotation.WebFilter;
    
    /**
     * 使用注解标注过滤器
     * @WebFilter将一个实现了javax.servlet.Filte接口的类定义为过滤器
     * 属性filterName声明过滤器的名称,可选
     * 属性urlPatterns指定要过滤 的URL模式,也可使用属性value来声明.(指定要过滤的URL模式是必选属性)
     */
    @WebFilter(filterName="Servlet3Filter",urlPatterns="/*")
    public class Servlet3Filter implements Filter {
    
        @Override
        public void destroy() {
            System.out.println("过滤器销毁");
        }
    
        @Override
        public void doFilter(ServletRequest request, ServletResponse response,
                FilterChain chain) throws IOException, ServletException {
            System.out.println("执行过滤操作");
            chain.doFilter(request, response);
        }
    
        @Override
        public void init(FilterConfig config) throws ServletException {
            System.out.println("过滤器初始化");
        }
    }</span>


    
    


      过滤器中使用了@WebFilter(filterName="Servlet3Filter",urlPatterns="/*")进行配置,Filter的名字是Servlet3Filter,表示urlPatterns="/*"该Filter拦截所有的请求。


      web服务器启动时就会初始化该Filter,如下图所示:


      


      当有用户访问web应用中的资源时,该过滤器就会进行拦截,如下图所示:


      


    可以看到,使用@WebFilter注解,我们可以将一个实现了javax.servlet.Filte接口的类定义为过滤器,用urlPatterns属性或者value属性指定要过滤的URL模式。

    可以指定多种过滤模式@WebFilter(filterName="Servlet3Filter",urlPatterns={"/UserManagerServlet","/index.jsp"})


     有了@WebFilter注解之后,我们的web.xml就无需任何配置了


    <span style="font-size:14px;">
    </span>
    <span style="font-size:14px;"><?xml version="1.0" encoding="UTF-8"?>
    <web-app version="3.0" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
      <display-name></display-name>    
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    </web-app></span>
    <span style="font-size:14px;">
    </span>


    这样我们的web.xml文件就非常干净了。可以说,Servlet3.0规范的出现,大大减少了开发Servlet和Filter配置方面的工作


    from: http://www.cnblogs.com/xdp-gacl/p/4224837.html

  • 相关阅读:
    现代软件工程 第一章 概论 第3题——韩婧
    现代软件工程 第一章 概论 第2题——韩婧
    小组成员邓琨、白文俊、张星星、韩婧
    UVa 10892 LCM的个数 (GCD和LCM 质因数分解)
    UVa 10780 幂和阶乘 求n!中某个因子的个数
    UVa 11859 除法游戏(Nim游戏,质因子)
    Codeforces 703C Chris and Road 二分、思考
    Codeforces 703D Mishka and Interesting sum 树状数组
    hdu 5795 A Simple Nim SG函数(多校)
    hdu 5793 A Boring Question 推公式(多校)
  • 原文地址:https://www.cnblogs.com/molashaonian/p/7445857.html
Copyright © 2011-2022 走看看