热点:

    JavaScript中filter用法详解

      [   原创  ]   作者:
    收藏文章 暂无评论

    过滤器的基本作用是拦截 Servlet 容器调用 Servlet(包括 JSP)的过程,使其能够在请求被 Servlet 处理之前以及响应返回客户端之后,执行特定的预处理和后续操作,从而实现如权限验证、日志记录、编码设置等功能,增强程序的灵活性与可维护性。

    1、 滤波器如何工作及其原理解析

    2、 这个Servlet过滤器即为我们所用的filter组件。

    3、 当在 web.xml 文件中配置一个过滤器用于拦截某个 Servlet 时,该过滤器便成为 Tomcat 与目标 Servlet 之间通信路径上的一个中间环节。它能够在请求到达 Servlet 之前进行拦截,也能在响应返回给客户端前进行干预。通过这一机制,过滤器可以控制是否放行请求至目标 Servlet,同时具备对请求数据和响应内容进行修改的能力。这种拦截不仅支持对用户请求的预处理,如编码设置、权限校验或日志记录,还能对服务器返回的信息进行后处理,例如添加响应头或压缩输出内容。因此,过滤器为 Web 应用提供了灵活的请求响应管理手段,增强了系统的可维护性与安全性,是实现横切关注点的重要技术之一。

    4、 在一个Web应用中可注册多个过滤器,每个过滤器均可对一个或多个Servlet进行拦截处理。

    5、 当多个过滤器需要对同一个Servlet的访问过程进行拦截时,一旦该Servlet接收到请求,Web容器会将这些过滤器按照其在web.xml文件中配置的顺序组织成一条过滤器链。请求在进入Servlet之前,会依次经过过滤器链中的各个过滤器,每个过滤器可对请求进行预处理;而响应返回时,则按相反顺序通过这些过滤器。整个过程中,过滤器的执行顺序完全由它们在部署描述符web.xml中定义的先后次序决定,确保了处理流程的可控性与一致性。

    6、 编写filter三步:定义、配置、应用。

    7、 编写过滤器实现类,继承并实现Filter接口功能。

    8、 编写web.xml文件,配置过滤器相关信息。

    9、 运行项目后,可观察到过滤器已生效。

    10、 代码:

    11、 Filter的生命周期包含三个阶段

    12、 服务器启动时创建并初始化filter,同时调用其init()方法。

    13、 当请求经过过滤器时,会执行其doFilter方法进行处理。

    14、 服务器关闭时,自动执行销毁方法。

    15、 三个过滤器通过请求

    16、 配置完filter后,发现无法访问index.jsp页面,每次请求都会触发filter的doFilter方法,说明该方法已生效并拦截了相关请求,导致页面无法正常加载。需检查过滤器规则是否覆盖了静态资源或默认页面的访问路径。

    17、 如何展示页面,即如何放行请求?我们注意到该方法中传入了一个filterChain对象,其中包含一个doFilter()方法,通过调用该方法即可继续执行过滤链,最终实现请求的放行与页面的显示。

    18、 只需调用filterChain的doFilter方法即可放行请求。

    19、 过滤器拦截机制原理

    20、 在调用 chain.doFilter(request, response) 方法之后,添加一行输出语句:System.out.println,用于记录后续处理信息。

    21、 doFilter方法执行后……在index.jsp中添加JSP脚本片段,输出我是jsp页面。运行程序后,控制台显示了这几行文字。

    22、 过滤方法执行请求处理

    23、 我是JSP网页

    24、 过滤方法执行后,继续后续处理流程。

    25、 不难看出filter的执行过程。

    26、 在doFilter方法执行前,容器会将filterChain对象传入。调用该对象的doFilter方法可将请求继续传递,实质是触发过滤器链中的下一个过滤操作;若当前仅有一个过滤器,则意味着直接放行请求进入后续处理流程。

    27、 FilterConfig类似于ServletConfig,是用于配置过滤器的信息对象,包含多个方法,可获取初始化参数、访问ServletContext等,为过滤器提供运行时所需的配置支持。

    28、 过滤器的URL匹配模式

    29、 url-pattern用于设定过滤器拦截的请求范围,常见配置方式有多种。

    30、 web.xml中配置的路径均以项目根目录为基准。

    31、 精准对应

    32、 当请求访问/index.jsp或/user/login路径时,系统将自动触发相应的过滤处理逻辑。

    33、 路径匹配:精准定位

    34、 所有以 /user/ 开头的请求路径都会被拦截,/* 表示拦截该目录下的全部请求,涵盖所有静态资源文件。

    35、 拓展匹配范围

    36、 所有以.jsp或.action为后缀的请求都将被系统自动拦截处理。

    37、 注意:/login/*.jsp 的写法不正确,仅可使用前述三种形式之一,禁止自行组合新的格式。

    38、 jsp扩展名错误,匹配必须使用正确的后缀名

    39、 支持多个URL模式的灵活配置

    40、 上述三种方式存在一定局限,但通过配置多个url-pattern,组合使用后基本可覆盖各类需求场景,灵活性和适用性显著增强。

    41、 多个过滤器的执行先后顺序

    42、 当同一资源被多个过滤器拦截时,其执行顺序由web.xml文件中配置的先后次序决定。

    43流程图如下所示

    44、 请求处理完毕后,才会继续执行doFilter后续的方法。

    soft.zol.com.cn true https://soft.zol.com.cn/1094/10944828.html report 3785 过滤器的基本作用是拦截 Servlet 容器调用 Servlet(包括 JSP)的过程,使其能够在请求被 Servlet 处理之前以及响应返回客户端之后,执行特定的预处理和后续操作,从而实现如权限验证、日志记录、编码设置等功能,增强程序的灵活性与可维护性。 1、 滤波器如何工作及其原...
    不喜欢(0) 点个赞(0)
    随时随地资讯查报价 就上ZOL手机客户端,点击或扫描二维码下载
    立即下载

    Filter Forge

    更新时间:2011年11月30日

    用户评分:0 | 0人点评

    软件类型:共享软件

    软件语言:英文

    Filter Forge
    • 更新时间:2011年11月30日
    • 软件大小:34.4MB
    • 软件分类:办公应用
    • 语言种类:英文
    • 软件评级:0 人点评