欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

javaweb之过滤器和过滤器链

程序员文章站 2022-04-12 22:46:04
一、过滤器技术:过滤器是在服务器上运行的,且位于请求与响应中间起过滤功能的程序。过滤器可以对用户的请求信息和响应信息进行过滤,常被用于权限检查和参数编码统一设置等。二、设计过滤器:第一步:实现一个Filter接口,建立过滤器init()、doFilter()、destroy()构成了过滤器对象的生命周期:创建、执行过滤方法、销毁public class MyFilter implements Filter{@Overridepublic void destroy() {// TOD...

一、过滤器技术:

过滤器是在服务器上运行的,且位于请求与响应中间起过滤功能的程序。过滤器可以对用户的请求信息和响应信息进行过滤,常被用于权限检查和参数编码统一设置等。

二、设计过滤器:

第一步:实现一个Filter接口,建立过滤器
init()、doFilter()、destroy()构成了过滤器对象的生命周期:创建、执行过滤方法、销毁

public class MyFilter 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("拦截请求...");
		chain.doFilter(request, response); //放行
		System.out.println("拦截响应...");
	}

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

}

第二步:2.将过滤行为放入doFilter()方法中,按功能需要实现doFilter()方法,并且通过chain.doFilter(request, response);放行
第三步:配置过滤器
过滤器的配置信息需要在web.xml注册。配置过滤器需要使用和元素,并且要放置在与中
配置格式如下:

<filter>
      <filter-name>FilterName</filter-name>
      <filter-class>package.className</filter-class>
</filter>
<filter-mapping>
      <filter-name>FilterName</filter-name>
      <url-pattern>/path</url-pattern>
</filter-mapping>

…注解…

<url-pattern>/MyServlet</url-pattern>  //只拦截访问MyServlet的请求
<url-pattern>/*</url-pattern> // 拦截一切请求

三、通配符:

dispatcher请求方式:
1.REQUEST:拦截HTTP请求 get post
2.FORWARD:只拦截通过请求转发方式的请求
3.INCLUDE:只拦截通过request.getRequestDispatcher("").include、通过<jsp:include page="…"/>此方法发出的请求
4.ERROR:只拦截发出的请求

四、过滤器链

在我们的请求到达Servle之间是可以经过多个Filter的,可以配置多个过滤器,过滤器的先后顺序是由<filter-mapping>的位置决定,先声明的先执行

本文地址:https://blog.csdn.net/weixin_46651245/article/details/109629915