victory的博客

长安一片月,万户捣衣声

0%

JavaWeb项目开发 | filter

filter

filter

  1. filter是什么?
    servlet2.3后增加的新功能,运行在服务器端的程序,先于与之相关的servlet或者jsp页面之前运行
  2. 作用
    过滤请求和相应
  3. 应用场景
    (1)自动登录
    (2)统一编码
    (3)过滤特殊符号或敏感词

    filter程序编写

  4. 编写一个类
  5. 1 实现一个Filter接口
  6. 2 重写接口所有的方法
  7. 编写配置文件
  8. 1 注册filter
  9. 2 绑定路径
  10. 2.1 完全匹配 例如:/demo1
  11. 2.2 目录匹配 例如: /* 过滤所有请求

    案例

  12. 项目目录
  13. 代码

Demo1Filter

package com.oracle.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;

public class Demo1Filter implements Filter{

    @Override
    public void destroy() {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        // TODO Auto-generated method stub
        System.out.println("Demo1Filter过滤到请求.../demo1");
        
        //放行
        chain.doFilter(request, response);
    }

    @Override
    public void init(FilterConfig arg0) throws ServletException {
        // TODO Auto-generated method stub
        
    }

}

web.xml

Demo1Servlet

package com.oracle.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class Demo1Servlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("Demo1Servlet接收到请求.../demo1");
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}

效果