javaweb之过滤器和过滤器链
程序员文章站
2022-07-05 21:05:00
一、过滤器技术:过滤器是在服务器上运行的,且位于请求与响应中间起过滤功能的程序。过滤器可以对用户的请求信息和响应信息进行过滤,常被用于权限检查和参数编码统一设置等。二、设计过滤器:第一步:实现一个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
上一篇: js实现数组和对象的深浅拷贝