今日内容
| 1. Filter:过滤器 |
| 2. Listener:监听器 |
Filter:过滤器
| 1. 概念: |
| * 生活中的过滤器:净水器,空气净化器,土匪、 |
| * web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能。 |
| * 过滤器的作用: |
| * 一般用于完成通用的操作。如:登录验证、统一编码处理、敏感字符过滤... |
| |
| 2. 快速入门: |
| 1. 步骤: |
| 1. 定义一个类,实现接口Filter |
| 2. 复写方法 |
| 3. 配置拦截路径 |
| 1. web.xml |
| 2. 注解 |
| 2. 代码: |
| @WebFilter("/*") |
| public class FilterDemo1 implements Filter { |
| @Override |
| public void init(FilterConfig filterConfig) throws ServletException { |
| |
| } |
| |
| @Override |
| public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { |
| System.out.println("filterDemo1被执行了...."); |
| |
| |
| |
| filterChain.doFilter(servletRequest,servletResponse); |
| |
| } |
| |
| @Override |
| public void destroy() { |
| |
| } |
| } |
| |
| |
| 3. 过滤器细节: |
| 1. web.xml配置 |
| <filter> |
| <filter-name>demo1</filter-name> |
| <filter-class>cn.itcast.web.filter.FilterDemo1</filter-class> |
| </filter> |
| <filter-mapping> |
| <filter-name>demo1</filter-name> |
| |
| <url-pattern>/*</url-pattern> |
| </filter-mapping> |
| 2. 过滤器执行流程 |
| 1. 执行过滤器 |
| 2. 执行放行后的资源 |
| 3. 回来执行过滤器放行代码下边的代码 |
| 3. 过滤器生命周期方法 |
| 1. init:在服务器启动后,会创建Filter对象,然后调用init方法。只执行一次。用于加载资源 |
| 2. doFilter:每一次请求被拦截资源时,会执行。执行多次 |
| 3. destroy:在服务器关闭后,Filter对象被销毁。如果服务器是正常关闭,则会执行destroy方法。只执行一次。用于释放资源 |
| 4. 过滤器配置详解 |
| * 拦截路径配置: |
| 1. 具体资源路径: /index.jsp 只有访问index.jsp资源时,过滤器才会被执行 |
| 2. 拦截目录: /user |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
Listener:监听器
| * 概念:web的三大组件之一。 |
| * 事件监听机制 |
| * 事件 :一件事情 |
| * 事件源 :事件发生的地方 |
| * 监听器 :一个对象 |
| * 注册监听:将事件、事件源、监听器绑定在一起。 当事件源上发生某个事件后,执行监听器代码 |
| |
| |
| * ServletContextListener:监听ServletContext对象的创建和销毁 |
| * 方法: |
| * void contextDestroyed(ServletContextEvent sce) :ServletContext对象被销毁之前会调用该方法 |
| * void contextInitialized(ServletContextEvent sce) :ServletContext对象创建后会调用该方法 |
| * 步骤: |
| 1. 定义一个类,实现ServletContextListener接口 |
| 2. 复写方法 |
| 3. 配置 |
| 1. web.xml |
| <listener> |
| <listener-class>cn.itcast.web.listener.ContextLoaderListener</listener-class> |
| </listener> |
| |
| * 指定初始化参数<context-param> |
| 2. 注解: |
| * @WebListener |
我对任何唾手而得,快速,出自本能,即兴,含混的事物没有信心。我相信缓慢,平和,细水长流的力量,踏实,冷静。我不相信缺乏自律精神和不自我建设,不努力,可以得到个人或集体的解放。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!