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/的任何请求,都会经过这个过滤器
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!