zoukankan      html  css  js  c++  java
  • java-Filter

    java-Filter

    过滤器是小型的Web组件,它们负责拦截请求以及响应,以便查看、提取或以某种方式操作正在客户机和服务器之间交换的数据。简单的说,过滤器就类似于客户端发送的web请求与服务器之间的防火墙,经过该防火墙验明正身后放可以传入后天进行进一步的数据请求。

    过滤器其实是一个Java的类,然后实现了几个函数,创建filter文件的时候,创建Class文件即可,参考代码如下所示:

    package common;

      

    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;  

    publicclass filter implements Filter 

    {  

        private FilterConfig filterConfig;  

      

        public void doFilter(ServletRequest request, ServletResponse response,  

                FilterChain chain) throws IOException, ServletException 

          {  

      /*

      再这里读取参数,并进行响应的过滤操作

      */

            chain.doFilter(request, response);//放行。让其走到下个链或目标资源中  

        }  

      

        public void init(FilterConfig filterConfig) throws ServletException {  

            System.out.println("初始化了");  

            this.filterConfig = filterConfig;  

        }  

      

        public void destroy() {  

            System.out.println("销毁了");  

        }  

     

    Filter可以过滤某一个Servlet或者JSP文件,或者顾虑一组Servlet或者JSP文件,这些功能是在web.XML文件中进行配置。

    web.xml参考代码:

    <?xmlversion="1.0"encoding="UTF-8"?>

    <web-appversion="2.5" 

    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_2_5.xsd">

      <display-name></display-name>

      

    <filter>  

        <filter-name>filter</filter-name>  

        <filter-class>common.filter</filter-class>  

        <init-param>  

            <param-name>param1</param-name>  

            <param-value>value在这里呢</param-value>  

        </init-param>  

    </filter>  

     

    <filter-mapping>  

        <filter-name>filter</filter-name>  

        <url-pattern>/ms/*</url-pattern>

     // <servlet-name></servlet-name>

        <dispatcher>REQUEST</dispatcher><!-- 没有配置dispatcher就是默认request方式的 -->  

        <dispatcher>FORWARD</dispatcher>  

        <dispatcher>ERROR</dispatcher>  

        <dispatcher>INCLUDE</dispatcher>  

    </filter-mapping>  

      

      

      

      <servlet>

        <description>This is the description of my J2EE component</description>

        <display-name>This is the display name of my J2EE component</display-name>

        <servlet-name>myservlet</servlet-name>

        <servlet-class>myservlet</servlet-class>

      </servlet>

      <servlet>

        <description>This is the description of my J2EE component</description>

        <display-name>This is the display name of my J2EE component</display-name>

        <servlet-name>SecondServlet</servlet-name>

        <servlet-class>SecondServlet</servlet-class>

      </servlet>

      <servlet-mapping>

        <servlet-name>myservlet</servlet-name>

        <url-pattern>/ms/one/myservlet</url-pattern>

      </servlet-mapping>

      <servlet-mapping>

        <servlet-name>SecondServlet</servlet-name>

        <url-pattern>/ms/tow/SecondServlet</url-pattern>

      </servlet-mapping>

     

      <welcome-file-list>

        <welcome-file>index.jsp</welcome-file>

      </welcome-file-list>

    </web-app>

    ---------------------

    再<filter-mapping> 映射节点中,如果我们对某一个Servlet文件进行过滤,可以设置

    <servlet-name>TargetFilterServletFileName</servlet>

    TargetFilterServletFileName表示将要进行过滤的Servlet文件,

    如果要对一组文件记性过滤,可以设置
    <url-pattern>/FilePath</url-pattern>其中*表示上一级路径下的所有文件,

    比如:/mm/servletForder/* 表示对/mm/servletForder/之后的所有文件进行过滤,

     

    再web.xml配置文件中,需要注意的一点是:如果使用过滤文件,那么Filter的配置必须放到 <servlet>节点之前

     

     

    Jason

    2014年05月11日

  • 相关阅读:
    hudson用SVN插件下载代码,用ant插件打包, 用SSH插件部署
    CSS加DIV布局
    CSS父元素高度随子元素高度变化而变化
    iframe父页面获取iframe子页面的元素 与 iframe子页面获取父页面元素
    基于ZooKeeper的Dubbo注册中心
    最近项目用到Dubbo框架,临时抱佛脚分享一下共探讨。
    接口测试中三种传参请求(Map、request、Integer)解析
    测试培训大纲第一课时,软件测试基础(培训待续中....)
    架构从最简单的数据访问框架(ORM)到资源调度和治理中心(SOA)说起
    让shell脚本在后台飞
  • 原文地址:https://www.cnblogs.com/xingchen/p/3722146.html
Copyright © 2011-2022 走看看