servlet实操之filter过滤器
Filter
过滤器:用来过滤网站的数据
-
处理中文乱码
-
登录验证...
实现过程
1、导包
2、编写过滤器
2.1、包不要到错
</dependency>
<!-- JSTL表达式依赖-->
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
<!-- standard标签库-->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
2.2、重写filter
public class CharacterEncodingFilter implements Filter {
//初始化
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("CharacterEncodingFilter初始化");
}
//chain:链
/*
1、过滤器中的所有代码,再过滤器特定请求的时候都会执行
2、必须要让过滤器继续运行
*/
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8");
System.out.println("CharacterEncodingFilter执行前。。。");
chain.doFilter(request, response);//让我们的请求继续走,如果不写,程序到这里就被拦截了。
System.out.println("CharacterEncodingFilter执行后。。。");
}
//销毁 webf服务器关闭时销毁
@Override
public void destroy() {
System.out.println("CharacterEncodingFilter销毁");
}
}