filter
filter介绍
filter(拦截器)其实理解很简单就是在网页访问服务器应用资源前进行拦截。拦截其传递的内容例如(四大域对象的值)。我们可以对传递的内容进行增删改查然后再将传递的内容传递给访问的服务器应用地址(servlet,jsp,或者其他静态资源)。很容易想到和动态代理差不多。
filter编码步骤
//创建拦截器类
public class FilterDemo implements Filter {
public FilterDemo(){
System.out.println("调用了默认的构造方法");
}
//用户每次访问被过滤的资源,都会由服务器调用该方法实现过滤
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("FilterDemo1执行过滤前");
//对请求进行拦截,代码写在这
chain.doFilter(request, response);//放行
//对响应进行拦截,代码写在这
System.out.println("FilterDemo1执行过滤后");
}
public void destroy() {
System.out.println("调用了销毁方法");
}
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("调用初始化方法");
}
}
//web。xml进行配置servlet3.0以上无需配置可使用注解的反射
//每次应用加载是就会启动过滤,每次访问以及回复都会经过过滤器。
<filter>
<filter-name>FilterDemo</filter-name>
<filter-class>com.itheima.filter.example.FilterDemo</filter-class>
</filter>
<filter-mapping>
<filter-name>FilterDemo</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>