大家好,欢迎来到IT知识分享网。
web中的过滤器的作用:
当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能。
web中过滤器的应用场景:
一般用于完成通用的操作。如:登录验证、统一编码处理、敏感字符过滤…
Filter的创建:
1.直接在New中选择 Web Filter
2.修改你创建文件的Name
3.其中各个方法的作用:
package FilterDemo;
import javax.servlet.*;
import javax.servlet.annotation.*;
import java.io.IOException;
/**
过滤器是在服务器启动时就会创建的,只会创建一个实例,常驻内存,也就是说.
*/
@WebFilter(filterName = “FilterDemo1”)
public class FilterDemo1 implements Filter {
/**
* 初始化方法,常用于数据初始化
* 服务器一启动就会执行Filter的init(FilterConfig config)方法
* 且只执行一次
*/
public void init(FilterConfig config) throws ServletException {
}
/**
* 销毁时调用,常用于释放资源
* 当Filter被移除或服务器正常关闭时,会执行destroy方法
* 仅执行一次
*/
public void destroy() {
}
/**
* 过滤方法 主要是对request和response进行一些处理,然后交给下一个过滤器或Servlet处理
* 可执行多次
*/
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
chain.doFilter(request, response);//过滤放行
}
}
4.注解的配置
注解的配置有以下11种
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface WebFilter {
String description() default “”;
String displayName() default “”;
WebInitParam[] initParams() default {};
String filterName() default “”;
String smallIcon() default “”;
String largeIcon() default “”;
String[] servletNames() default {};
String[] value() default {};
String[] urlPatterns() default {};
DispatcherType[] dispatcherTypes() default {DispatcherType.REQUEST};
boolean asyncSupported() default false;
}
常用的配置项
1.urlPatterns
配置要拦截的资源
以指定资源匹配。例如:”/index.jsp”
以目录匹配。例如:”/servlet/*”
以后缀名匹配,例如:”*.jsp”
通配符,拦截所有web资源:”/*”
2.dispatcherTypes
配置拦截的类型,可配置多个。默认为DispatcherType.REQUEST,
FORWARD,//转发的
INCLUDE,//包含在页面的
REQUEST,//请求的
ASYNC,//异步的
ERROR;//出错的
如果需要配置多个使用大括号包起来。
@WebFilter(filterName = “FilterDemo1”,
dispatcherTypes= {DispatcherType.FORWARD,DispatcherType.REQUEST})
注:如有错误与不足,希望大佬们多加指正与补充
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/40549.html