filter:过滤器,顾名思义,在servlet和web服务器之前的一层过滤网,将垃圾请求过滤,用来过滤网站的数据处理中文乱码,登录验证
Filter开发步骤:
-
导包
-
编写过滤器
- 导包不要导错
2.实现Filter接口,重写对应的方法即可
- 导包不要导错
public class CharacterEncodingFilter implements Filter {
//初始化:web服务器启动,就已经初始化了,随时等待过滤对象出现
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("CharacterEncodingFilter初始化");
}
//Chain:链
/*
1.过滤中的所有代码,在过滤特定请求的时候都会执行
2.必须要让过滤器继续同行
chain.doFilter(request,response);
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
response.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
System.out.println("CharacterEncodingFilter执行前。");
chain.doFilter(request,response); //让我们的请求继续走,如果不写,程序到这里就被拦截停止
System.out.println("CharacterEncodingFilter执行后");
}
//销毁:web服务器关闭的时候,过滤会销毁
public void destroy() {
System.out.println("CharacterEncodingFilter销毁");
}
}
3.在web.xml中配置Filter
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>com.sms.filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<!-- 只要是/servlet的任何请求,都会经过这个过滤器 -->
<url-pattern>/servlet/*</url-pattern>
<!-- <url-pattern>/*</url-pattern>-->
</filter-mapping>
注:本笔记文字,图片均来自于 B站狂神说 ,原视频地址:https://www.bilibili.com/video/BV12J411M7Sj?t=247&p=24
本人为狂神的忠实粉丝,若本文章为侵权抄袭,请叫我删掉