1.Filter过滤器
1)为是么有过滤器
开发项目中经常遇到直接登录主页面要判断用户是否合法,这类代码比较重复,可以通过过滤器来解决
2)过滤器原理生命周期
服务器创建过滤器对象-》一个执行init()方法-》用户请求-》执行第一个过滤器-》执行第二个过滤器-》到达目标地址-》浏览器关闭过滤器销毁
3)过滤器语法
Filter接口:三个主要方法
init(FilterConfig):初始化方法,service()服务启动时执行
doFilter(request,response,FilterChain chain);过滤器拦截的业务处理方法
destroy(); 销毁过滤器实例时调用
其中:filterConfig:获取初始化参数信息;getInitParameter("");getInitParameterName()
chain:过滤器参数,一个个过滤器形成一个执行链
作用:执行下一个过滤器或放行
4)部署过滤器
1.创建类继承Filter接口
实现3个方法
public class HelloFilter implements Filter{ @Override public void destroy() { // TODO Auto-generated method stub System.out.println("helloFilter销毁了!"); } @Override public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { // TODO Auto-generated method stub System.out.println("HelloFilter正在过滤"); } @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub System.out.println("过滤器初始化开始"); String name=arg0.getInitParameter("name"); System.out.println("name的值:"+name); Enumeration<String> names=arg0.getInitParameterNames(); while(names.hasMoreElements()){ System.out.println("初始化参数"+names.nextElement()); } }