JavaWeb快速入门: Filter与Listener核心详解

JavaWeb核心技术——Filter过滤器、Listener监听器 目录 1,Filter 1.1 Filter概述 1.2 Filter快速入门 1.2.1 开发步骤 1.2.2 代码演示 1.3 Filter执行流程 1.4 Filter拦截路径配置 1.5 过滤器链 1.5.1 概述 1.5.2 代码演示 1.5.3 问题 1.6 案例 1.6.1 需求 1.6.2 分析 1.6.3 代码实现 2,Listener 2.1 概述 2.2 分类 2.3 代码演示 今日目标: 能够使用 Filter 完成登陆状态校验功能 阅读详情

本文纲要

  1. Filter概述
  2. Filter快速入门
    开发步骤
    项目结构
    核心代码
  3. Filter执行流程
    流程图解
    代码演示
    数据处理时机
  4. Filter拦截路径配置
    四种配置方式
    示例演示
  5. 过滤器链
    概念与执行流程
    优先级规则
    示例代码与输出
  6. 案例:登录验证过滤器
    需求分析
    项目结构
    登录验证流程
    完整代码解析
  7. Listener概述
  8. Listener基本使用
    开发步骤
    代码示例
  9. 总结

Filter概述

在JavaWeb中,有三大核心组件:Servlet、Filter 和 Listener。
Filter(过滤器) 的作用是拦截对Web资源的请求,并在请求到达目标资源前或响应返回客户端前进行一些通用的、重复性的处理。

常见应用场景包括:

  • 登录验证:统一判断用户是否已登录
  • 权限控制:细粒度访问权限校验
  • 统一编码处理:避免每个Servlet重复设置编码
  • 敏感词过滤:对请求参数或响应内容进行过滤

过滤器的工作模型如下:

拦截

客户端请求

Filter

预处理

目标资源

后处理

客户端响应

凡是访问Web应用中的资源(Servlet、JSP、HTML等),都可以先经过过滤器,再决定是否放行。

Filter快速入门

1 ) 开发步骤

  1. 定义一个类,实现 javax.servlet.Filter 接口
  2. 重写三个方法:init()、doFilter()、destroy()
    • init():初始化时调用
    • doFilter():每次拦截请求时执行,是过滤器的核心
    • destroy():销毁时调用
  3. 使用 @WebFilter 注解配置拦截路径(注意:这里的路径是拦截资源的路径,不是过滤器的访问路径)
  4. 在 doFilter() 中编写逻辑,并通过 chain.doFilter(request, response) 放行

2 ) 项目结构

filter-demo 
├── pom.xml 
├── src 
│   └── main 
│       ├── java/com/wb/web/filter 
│       │   ├── FilterDemo.java 
│       │   ├── FilterDemo2.java 
│       │   └── AFilterDemo2.java 
│       └── webapp 
│           ├── hello.jsp 
│           ├── index.jsp 
│           └── WEB-INF/web.xml 

3 ) 核心代码

3.1 定义一个简单的过滤器

package com.wb.web.filter;
 
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
 
@WebFilter("/*")
public class FilterDemo implements Filter {
 
    @Override 
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 
            throws IOException, ServletException {
        // 1. 放行前,对 request 数据进行处理 
        System.out.println("1.FilterDemo...");
 
        // 放行 
        chain.doFilter(request, response);
 
        // 2. 放行后,对 Response 数据进行处理 
        System.out.println("5.FilterDemo...");
    }
 
    @Override 
    public void init(FilterConfig filterConfig) throws ServletException { }
 
    @Override 
    public void destroy() { }
}

注意:@WebFilter("/*") 表示拦截所有资源。如果拦截后不调用 chain.doFilter(),请求将不会到达目标资源。

3.2 目标 JSP(hello.jsp)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title></head>
<body>
    <h1>hello JSP~</h1>
    <%
        System.out.println("3.hello jsp");
    %>
</body>
</html>

访问 hello.jsp 时,控制台输出顺序为:1.FilterDemo... → 3.hello jsp → 5.FilterDemo...,证明过滤器先执行放行前逻辑,再访问资源,最后执行放行后逻辑。

Filter执行流程

过滤器的执行流程可以概括为:放行前逻辑 → 放行 → 访问资源 → 放行后逻辑。

目标资源过滤器客户端目标资源过滤器客户端放行前逻辑执行业务逻辑放行后逻辑请求chain.doFilter() 放行返回响应

代码演示

在过滤器 FilterDemo 和目标 JSP 中分别打印标记:

// FilterDemo.java 
System.out.println("1.FilterDemo...");   // 放行前 
chain.doFilter(request, response);
System.out.println("5.FilterDemo...");   // 放行后 
<%-- hello.jsp --%>
<%
    System.out.println("3.hello jsp");
%>

输出结果:1.FilterDemo... → 3.hello jsp → 5.FilterDemo...,验证了上述执行顺序。

数据处理时机

  • 放行前:一般对 request 数据进行处理(如编码设置、参数过滤)。因为此时 response 还没有业务数据。
  • 放行后:一般对 response 数据进行处理(如压缩、敏感词替换)。因为资源执行完毕后 response 中才填充了真正的响应内容。

Filter拦截路径配置

使用 @WebFilter 注解的 value 属性(或 urlPatterns)配置拦截路径,支持四种方式:

配置方式示例说明
具体资源路径拦截"/login.jsp"只有访问 login.jsp 时过滤器才生效
目录拦截"/user/*"访问 /user/ 下所有资源时触发
后缀名拦截"*.jsp"访问所有 .jsp 后缀资源时触发
拦截所有"/*"任何资源请求都会被过滤(最常用)

示例演示

1 ) 拦截特定资源

@WebFilter("/hello.jsp")
public class FilterDemo2 implements Filter {
    @Override 
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 
            throws IOException, ServletException {
        System.out.println("FilterDemo2 executed...");
        chain.doFilter(request, response);
    }
    //...
}

此时只有访问 hello.jsp 时控制台才输出信息,访问 index.jsp 则不触发过滤器。

2 ) 拦截所有资源

@WebFilter("/*")
public class FilterDemo implements Filter { ... }

这种方式在统一登录验证、编码处理等场景下最常用。

过滤器链

1 ) 概念与执行流程

一个Web应用可以配置多个过滤器,它们按照一定顺序形成一个过滤器链。请求会依次经过每个过滤器,直到最后一个过滤器放行后到达目标资源,返回时再按相反顺序执行放行后的逻辑。

客户端请求

Filter1 放行前

Filter2 放行前

目标资源

Filter2 放行后

Filter1 放行后

客户端响应

2 ) 优先级规则

当使用 @WebFilter 注解配置时,过滤器的执行顺序由类名字符串的自然排序决定。例如:

  • AFilterDemo2 会优于 FilterDemo 执行
  • FilterDemo 会优于 FilterDemo2 执行(因为 Demo < Demo2)

3 ) 示例代码与输出

过滤器1:FilterDemo

@WebFilter("/*")
public class FilterDemo implements Filter {
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 
            throws IOException, ServletException {
        System.out.println("1.FilterDemo...");
        chain.doFilter(request, response);
        System.out.println("5.FilterDemo...");
    }
    //...
}

过滤器2:FilterDemo2

@WebFilter("/*")
public class FilterDemo2 implements Filter {
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 
            throws IOException, ServletException {
        System.out.println("2.FilterDemo...");
        chain.doFilter(request, response);
        System.out.println("4.FilterDemo...");
    }
    //...
}

访问任意资源时,控制台输出:

1.FilterDemo...
2.FilterDemo...
3.hello jsp 
4.FilterDemo...
5.FilterDemo...

体现了 FilterDemo(类名字典序更小)先执行,且放行后按反向顺序执行。

案例:登录验证过滤器

1 ) 需求分析

在没有登录验证时,用户可以不登录直接访问品牌列表等受保护资源,登录功能形同虚设。
我们需要编写一个全局过滤器,对所有资源进行登录校验:

  • 已登录:放行
  • 未登录:跳转到登录页面,并提示“您尚未登录”

同时,必须将登录/注册相关的资源直接放行,否则这些页面的CSS、图片等也会被拦截,导致无法登录。

2 ) 项目结构

brand-demo 
├── pom.xml 
├── src/main/java/com/wb 
│   ├── web 
│   │   ├── filter 
│   │   │   └── LoginFilter.java         # 登录验证过滤器 
│   │   ├── listener 
│   │   │   └── ContextLoaderListener.java # 监听器示例 
│   │   ├── LoginServlet.java 
│   │   ├── RegisterServlet.java 
│   │   ├── SelectAllServlet.java 
│   │   └── ... (其他Servlet)
│   └── ... (service, mapper, pojo, util)
└── src/main/webapp 
    ├── login.jsp 
    ├── register.jsp 
    ├── brand.jsp 
    └── ...

3 ) 登录验证流程

是

否

有

无

收到请求

请求路径是否
与登录/注册相关?

直接放行

Session中
是否有user对象?

放行

存储提示信息
转发到login.jsp

4 ) 完整代码解析

LoginFilter.java

package com.wb.web.filter;
 
import javax.servlet.*;
import javax.servlet.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.IOException;
 
@WebFilter("/*")
public class LoginFilter implements Filter {
    @Override 
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 
            throws ServletException, IOException {
        HttpServletRequest req = (HttpServletRequest) request;
 
        // 1. 判断访问路径是否与登录/注册相关(应该直接放行)
        String[] urls = {"/login.jsp","/imgs/","/css/","/loginServlet",
                         "/register.jsp","/registerServlet","/checkCodeServlet"};
        String url = req.getRequestURL().toString();
 
        for (String u : urls) {
            if (url.contains(u)) {
                // 直接放行,不再执行后续判断 
                chain.doFilter(request, response);
                return;
            }
        }
 
        // 2. 判断Session中是否存在user对象 
        HttpSession session = req.getSession();
        Object user = session.getAttribute("user");
 
        if (user != null) {
            // 已登录,放行 
            chain.doFilter(request, response);
        } else {
            // 未登录,存储提示信息并跳转到登录页 
            req.setAttribute("login_msg", "您尚未登录!");
            req.getRequestDispatcher("/login.jsp").forward(req, response);
        }
    }
 
    public void init(FilterConfig config) throws ServletException {}
    public void destroy() {}
}

要点分析:

  • 先将 ServletRequest 强转为 HttpServletRequest,以便获取 Session 和请求路径。
  • 白名单路径使用 return 直接退出方法,避免代码继续向下执行。
  • 如果用户未登录,设置 login_msg 属性后转发到 login.jsp,前端通过 ${loginmsg} 显示提示。
  • 登录成功后,LoginServlet 会将 user 对象存入 Session,后续请求就能通过过滤器。

5 ) 登录成功后设置 Session:

// LoginServlet 片段 
HttpSession session = request.getSession();
session.setAttribute("user", user);

这样,过滤器就可以通过 session.getAttribute("user") 判断登录状态。

Listener概述

Listener(监听器) 是 JavaWeb 三大组件之一,用于监听 ServletContext、HttpSession、ServletRequest 等域对象的创建、销毁以及属性变化。当监听到指定事件时会自动执行相应方法。

虽然现在监听器使用频率不如 Filter 和 Servlet 高,但在框架初始化等场景下仍非常重要(例如 Spring 利用监听器加载上下文)。

JavaWeb 提供了 8 个监听器接口:

监听对象监听器接口(创建/销毁)监听器接口(属性变化)
ServletContextServletContextListenerServletContextAttributeListener
HttpSessionHttpSessionListenerHttpSessionAttributeListener
HttpSessionHttpSessionActivationListener(钝化/活化)HttpSessionBindingListener(绑定)
ServletRequestServletRequestListenerServletRequestAttributeListener

本文重点介绍最常用的 ServletContextListener

Listener基本使用

1 ) 开发步骤

  1. 定义一个类,实现对应的监听器接口(如 ServletContextListener)
  2. 重写响应方法(如 contextInitialized()、contextDestroyed())
  3. 添加 @WebListener 注解(无需配置路径,自动生效)

2 ) 代码示例

ContextLoaderListener.java

package com.wb.web.listener;
 
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
 
@WebListener 
public class ContextLoaderListener implements ServletContextListener {
    @Override 
    public void contextInitialized(ServletContextEvent sce) {
        // Web应用启动时加载资源 
        System.out.println("ContextLoaderListener...");
    }
 
    @Override 
    public void contextDestroyed(ServletContextEvent sce) {
        // Web应用关闭时释放资源 
    }
}

当应用启动时,控制台会输出 ContextLoaderListener...,表明监听器已自动执行。

ServletContext 对象代表整个Web应用,它的初始化标志着应用加载成功,因此可以在 contextInitialized() 中执行一些全局初始化操作(如加载配置文件、建立数据库连接池等)。

总结

  • Filter(过滤器):拦截请求,实现通用预处理和后处理,通过 @WebFilter 配置拦截路径,通过 chain.doFilter() 放行,多个过滤器形成链式调用,执行顺序由类名的自然排序决定。
  • Listener(监听器):监听域对象的生命周期和属性变化,通过 @WebListener 自动注册,常用于应用启动时的资源加载。
  • 两者配合 Servlet 构成了 JavaWeb 开发的三大基石,理解它们能够帮助我们编写更加优雅、可维护的 Web 应用。

以上便是 JavaWeb 中 Filter 与 Listener 的核心知识,通过本文的学习,你已经掌握了过滤器的开发、执行流程、路径配置、过滤器链以及实战登录验证案例,同时也了解了监听器的基本用法。

在实际项目中,这些组件将极大程度地简化重复代码,提升开发效率。

JavaWeb-三大核心组件(Servlet、Filter、Listener) JavaWeb三大核心组件是Servlet、Filter和Listener。 Servlet:用于处理客户端请求并生成响应的服务器端程序。 Filter:用于拦截和处理请求和响应。 Listener:用于监听Web应用程序中的特定事件,如对象的创建、销毁以及属性的更改等。 阅读详情

相关推荐

编程自学指南:java程序设计开发,JavaWeb Servlet 与Filter 、Listener、SpringMVC协作学习笔记

编程自学指南:java程序设计开发,JavaWeb Servlet 与Filter 、Listener、SpringMVC协作学习笔记

zl515035644的博客 1208

JavaWeb——Filter&Listener笔记

JavaWeb——Filter&Listener笔记Filter:过滤器Listener:监听器 下载链接: https://pan.baidu.com/s/1l1z5gSLKM6YV6IOpTA30cw提取码: 37gf Filter:过滤器 1. 概念: * 生活中的过滤器:净水器,空气净化器,土匪、 * web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特...

落拓子ю的博客 240

Halcon —— 图像像素类型与转换

图像类型 就目前工业领域主流的图像处理工具halcon来讲,有以下几张图像类型:‘byte’, ‘complex’, ‘cyclic’, ‘direction’, ‘int1’, ‘int2’, ‘int4’, ‘int8’, ‘real’, ‘uint2’,具体含义如下图所示。相互间的转换可通过convert_image_type算子完成,但盲目转换会导致图像像素值异常。 ‘byte’ 每像素1字节,无符号 值范围: (0到255) ‘int1’ 每像素1字节,有符号 值范围: (-128到127) ‘

baidu_35536188的博客 1万+

JavaWeb三大组件【Servlet】【Filter】【Listener】学习笔记

本文主要详细讲解JavaWeb的三大组件:Servlet、Filter、Listener。内容包括三者的基本语法、用法,同时包含一个三者的综合案例,同时案例富有详细的解说

热爱编程、热爱生活、热爱探索 3179

Win11下Android模拟器报HAXM未安装?三步搞定虚拟化配置(附终端命令)

本文详细解析了Win11下Android模拟器HAXM报错的解决方案,从虚拟化配置到终端命令实战。通过检查BIOS设置、调整Windows功能及执行PowerShell命令,三步搞定虚拟化配置问题,有效提升模拟器性能。特别针对Win11与HAXM的兼容性问题提供了专业指导。

weixin_29215815的博客 143

ST-LINK调试原理与STM32硬件连接实战指南

嵌入式调试器是连接开发环境与物理MCU的核心枢纽,其本质是基于ARM CoreSight架构的实时硬件观测与控制接口。它通过JTAG或SWD协议访问内核寄存器、内存及外设,实现断点、单步、内存监视等深度调试能力,远超简单程序烧录功能。ST-LINK作为主流ARM Cortex-M调试器,支持SWD(2线)与JTAG(多线)双模式,在电平匹配、复位控制、引脚复用规避等硬件层面临关键工程约束。掌握VREF参考电压配置、nSRST硬复位接线、调试引脚隔离策略及Keil MDK调试会话配置,是保障STM32稳定联机

weixin_42596214的博客 312

JavaWeb三大核心组件 - Servlet、Filter、Listener

一、Servlet(服务器小程序) 1.Servlet详解 1. 概念:运行在服务器端的小程序 * Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。 * 将来我们自定义一个类,实现Servlet接口,复写方法。 2. 快速入门: 1. 创建JavaEE项目 2. 定义一个类,实现Servlet接口 * publ...

淦淦淦! 3111

如何在SendWS实现WhatsApp批量群发设置管理?WhatsApp群发超链有什么好处?

WhatsApp群发顾名思义就是对WhatsApp上的用户好友进行群发消息,给他们群发想要发送的消息。及时不认识对方也可以对他进行群发超链。越来越多做跨境出海运营的工作者利用WhatsApp进行营销推广,因为他能做到低成本高回报,向客户发送消息曝光自己的品牌或产品,使得更多人了解,拓展新客户,提高成交率。

SendWS-WS云控群控拓客聊天翻译 1169

JavaWeb三大组件(Servlet、Filter、Listener)

JavaWeb三大组件指的是:Servlet、Filter、Listener,这三个组件在JavaWeb开发中分别提供不同的功能,然而很多人可能只用过其中一个或者两个(Servlet、Filter,比如我),很难接触到第三个组件,因此对原始JavaWeb开发还不够熟悉,在这种情况下进行框架学习,这种做法是并不可取,框架是大牛们对原始JavaWeb进行封装的结果,没有原始JavaWeb开发基础是很难真

xiaojie119120的博客 4万+

搞懂 SAPUI5 Fiori 应用的 OData 授权维护:从 IWSG、IWSV 到 S_SERVICE 的完整实践

本文探讨了SAP Fiori项目中常见的授权问题及其解决方案。文章指出,开发人员常误将OData服务访问问题归咎于前端代码或配置,而实际上多因授权默认值未正确带入角色所致。详细分析了IWSG(前端服务组元数据)和IWSV(后端业务服务)两个关键对象的作用机制,强调应通过PFCG角色的Authorization Default入口维护服务对象,而非直接修改S_SERVICE授权对象。文章还提供了前后端授权配置的具体操作步骤,并特别提醒需同时配置前端和后端授权,才能确保应用完整可用性。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 206

【ARM Coresight | AMBA BUS | Cache 与 MMU/MPU | CoreLink | GCC | CSH 专栏导读】

1. ARM Coresight(SoC-400/SoC-600) 专栏 2. ARMv8/v9 CPU/Cache 专栏 3. Linux ARM AMBA 总线 专栏 4. Trace32/DS-5 专栏。。。

CodingCos的博客 8241

JavaWeb 三大组件详解:过滤器 Filter、拦截器 Interceptor、监听器 Listener

JavaWeb三大核心组件解析:过滤器(Filter)、拦截器(Interceptor)、监听器(Listener) 过滤器(Filter)是JavaEE标准的Servlet容器级组件,能拦截所有请求/响应,主要用于全局请求处理: 实现方式:实现javax.servlet.Filter接口并配置web.xml或使用@WebFilter注解 典型应用:统一编码设置、权限控制、XSS防护、日志记录等 执行流程:预处理→chain.doFilter()放行→后处理 补充说明:Spring Cloud Gatewa

2201_75355172的博客 1300

保研考研机试攻略:python笔记(4)

保研考研机试攻略:python笔记(4)二分法+最大公约数+最小公倍数+素数判断+幂次方mod方法+匹配问题+哈希算法+哈夫曼编码+二叉树

qq_63349644的博客 1097

JavaWeb:三大组件servlet & Filter & Listener

当当当当~~~~欢迎大家阅读,今天我们学习JavaWeb三大组件:程序(Servlet)、过滤器(Filter)和监听器(Listener) Filter:过滤器 一:概念 生活中的过滤器:净水器,空气净化器,土匪 web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能。 二:过滤器的作用 一般用于完成通用的操作。如:登录验证、统一编码处理、敏感字符过滤等... 三:快速入门 (一):步骤 1. 定义一个类,实现接口Filter 2. 复写方法

Z2658172512的博客 664

【更新中260712】CRAIC中国机器人及人工智能大赛-机器人应用赛-智能产线赛项-备赛指南

2025年第二十七届中国机器人及人工智能大赛现已闭幕结合我小组自身备赛情况及见闻感悟,现整理成章。

EDUCN 938

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

JavaWeb——Filter and Listener

JavaWeb三大组件:Servlet、Filter、Listener 1.Filter(过滤器) 1.1.概念 Web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截,完成一些特殊的功能 1.2.过滤器的作用 一般用于完成通用的操作,如登陆验证、统一编码处理、敏感字符过滤等 1.3.过滤器快速入门 步骤: 1.定义一个类,实现接口Filter 2.覆写方法 3.配置拦截路径 ...

LiLiLiLaLa的博客 480

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Filter与Listener - 过滤器和监听器详解 轻松学习

过滤器Filter Filter概述   Filter(过滤器)是Java Web开发的三大组件之一(Servlet Filter Listener)   一般用于对web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理   最常用与解决乱码问题(配置全局拦截器,拦截所有请求,给request和response都设置编码,然后放行) Filter过滤器生命周期 init方法:服务器启动时就创建该Filter对象,执行init()方法 doFilter方法:每当一个请求的路径是满足过滤器的配

Java小皮孩 4680

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

11_JavaWeb三大组件之Filter拦截器与Listener监听器

JavaWeb中的三大组件除了Servlet之外还有Filter和Listener,本文详细讲解了Filter与Listener,并加上一些Spring中的拦截器知识

qq_41781632的博客 2457

Servlet, Filter, Listener 启动与执行顺序

在Java Web应用中,Servlet、Filter和Listener的启动与执行顺序至关重要,它们遵循着固定的流程:

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 5442

JavaWeb入门到实战(6)--JavaBean/MVC/Filter/Listener

JavaWeb入门到实战 p22-p27 笔记。

Coding... 976

Filter和Listener

监听器就是监听某个域对象的的状态变化的组件监听器的相关概念:事件源:被监听的对象(三个域对象 request、session、servletContext)监听器:监听事件源对象事件源对象的状态的变化都会触发监听器注册监听器:将监听器与事件源进行绑定响应行为:监听器监听到事件源的状态变化时所涉及的功能代码(程序员编写代码)

qq_48114126的博客 1119

[JavaWeb-11]Filter和Listener

1、Filter   Filter是过滤器的意思,和Listener监听器、Servlet一起组成JavaWeb的三大组件。   Filter的作用是当有请求来访问服务器资源时,过滤器可以把请求拦截下来,完成一些特殊的功能。比如:登录验证、统一编码处理、敏感字符过滤等。 1.1 快速入门   1. 定义一个类,实现接口Filter   2. 复写方法   3. 配置拦截路径(web.xml或注解)...

学哥斌的博客 214

JavaWeb三大组件之Filter和Listener

Filter过滤器 Filter 过滤器它是 JavaWeb 的三大组件之一。三大组件分别是:Servlet 程序、Listener 监听器、Filter 过滤器 Filter 过滤器它是 JavaEE 的规范。也就是接口 Filter 过滤器它的作用是:拦截请求,过滤响应。 拦截请求常见的应用场景有: 1、权限检查 2、日记操作 3、事务管理 ……等等 主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理。使用Filter的完整流程:Filter对用户请求进行预处理,

一只黑猩猩 584

Javaweb(Filter、Listener、AJAX、JSON)

异步的 JavaScript 和 XMLAJAX作用:1.与服务器进行数据交换:通过AJAX可以给服务器发送请求,并获取服务器响应的数据使用了AJAX和服务器进行通信,就可以使用HTML+AJAX来替换JSP页面了2.异步交互:可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术,如:搜索联想、用户名是否可用校验,等等...同步和异步。

2501_94455816的博客 461

Filter & Listener

概念: Filter 表示过滤器,是 JavaWeb 三大组件之一(Servlet、Filter、Listener)。作用: 过滤器可以拦截对资源的请求,在请求到达目标资源前或响应返回客户端前执行特定逻辑,从而实现一些特殊功能(如登录校验、字符编码设置、日志记录等)。一般完成一些通用的操作,比如:权限管理,统一编码,敏感字符处理...Listener 表示监听器,是 JavaWeb 三大组件之一(Servlet、Filter、Listener)。监听器用于监听sessionrequest。

m0_74193457的博客 780

Javaweb之Filter和Listener

Filter 表示过滤器,是 JavaWeb 三大组件(Servlet、Filter、Listener)之一。Servlet 我们之前都已经学习过了,Filter和Listener 我们今天都会进行学习。过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。如下图所示,浏览器可以访问服务器上的所有的资源(servlet、jsp、html等)而在访问到这些资源之前可以使过滤器拦截来下,也就是说在访问资源之前会先经过 Filter,如下图。

lpblog的博客 362
上一篇: JavaWeb快速入门:会话跟踪技术详解(Cookie与Session)
下一篇: JavaWeb快速入门:AJAX、Axios与JSON实战
Wang's Blog
博客等级 码龄12年 7418粉丝 2407原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值