filter
filter
- filter是什么?
servlet2.3后增加的新功能,运行在服务器端的程序,先于与之相关的servlet或者jsp页面之前运行 - 作用
过滤请求和相应 - 应用场景
(1)自动登录
(2)统一编码
(3)过滤特殊符号或敏感词filter程序编写
- 编写一个类
- 1 实现一个Filter接口
- 2 重写接口所有的方法
- 编写配置文件
- 1 注册filter
- 2 绑定路径
- 2.1 完全匹配 例如:/demo1
- 2.2 目录匹配 例如: /* 过滤所有请求
案例
- 项目目录
- 代码
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);
}
}