javaweb学习22:过滤器Filter
-
过滤器Filter:用来过滤网站的数据
-
-
登录验证;

-
-
Filter开发步骤:
-
导包;(包不要导错)
import javax.servlet.Filter; -
编写过滤器:实现Filter接口;
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
}
public void destroy() {
}
-
-
回顾JDBC操作事务:
-
开始事务;
-
回滚事务;
-
提交事务;
-
-
代码案例:编写过滤器
//过滤器处理类
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 {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
System.out.println("CharacterEncodingFilter执行前");
//chain 是放行的作用
chain.doFilter(request,response);//让我们的请求继续走,如果不写,程序到这里就停止了
System.out.println("CharacterEncodingFilter执行前后");
}
//销毁:web服务器关闭的时候,过滤器会销毁
public void destroy() {
System.gc();
System.out.println("CharacterEncodingFilter销毁");
}
}
-
代码案例:编写Servlet实现
//编写Servlet处理类
public class ShowServlet extends HttpServlet {
-
web.xml配置:
-
只要是/servlet/的任何请求,都会经过这个过滤器
-

浙公网安备 33010602011771号