iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Servlet过滤器的工作方式是什么
  • 800
分享到

Servlet过滤器的工作方式是什么

2023-06-17 12:06:47 800人浏览 泡泡鱼
摘要

这篇文章主要讲解了“Servlet过滤器的工作方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Servlet过滤器的工作方式是什么”吧!Servlet过滤器是可插入的 WEB 组件,

这篇文章主要讲解了“Servlet过滤器的工作方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Servlet过滤器的工作方式是什么”吧!

Servlet过滤器是可插入的 WEB 组件,它允许我们实现 Web 应用程序中的预处理和后期处理逻辑。过滤器支持 servlet 和 jsP 页面的基本请求处理功能,比如日志记录、性能、安全、会话处理、XSLT 转换,等等。

从J2EE1.3开始,Servlet2.3规范中加入了对过滤器的支持。过滤器能够对目标资源的请求和响应进行截取。过滤器的工作方式分为四种,下面让我们分别来看看这四种过滤器的工作方式:

1、request过滤器

这种过滤器的工作方式比较简单,大家也经常遇到,如下图所示:

Servlet过滤器的工作方式是什么

以下是web.xml文件配置方式:

<filter > <filter-name >myFilter</filter-name > <filter-class >xx.MyFilter</filter-class > <filter > <filter-mapping > <filter-name >myFilter</filter-name > <servlet-name >目标资源一</servlet-name > </filter-mapping >

下面我们更改一下web.xml文件的配置,如下方式:

<filter > <filter-name >myFilter</filter-name > <filter-class >xx.MyFilter</filter-class > </filter > <filter-mapping > <filter-name >myFilter</filter-name > <servlet-name >目标资源一</servlet-name > </filter-mapping > <filter-mapping > <filter-name >myFilter</filter-name > <servlet-name >目标资源二</servlet-name > </filter-mapping >

也就是说此过滤器对目标资源一和目标资源二都进行过滤,然后当目标资源一被访问的时候我们将请求转发给目标资源二,那么这个时候过滤器是怎么工作的呢?如下图所示:

Servlet过滤器的工作方式是什么

我们可以看到,当我们访问目标资源一时过滤器截取了请求,然后再转发给目标资源一,然后再转发给目标资源二,从图中我们可以看到过滤器没有截取转发到目标资源二的请求,但是我们已经在web.xml文件中配置了该过滤器对目标资源二的过滤,为什么又没有起到过滤作用呢?

答案就在于,目标资源一是客户端直接访问,而目标资源二是被转发过来的,这时过滤器就不能过滤目标资源二。如果你直接访问目标资源二,你会发现该过滤器起到了作用?

我们上面的web.xml文件配置与以下方式等价:

<filter >myFilter</filter > <filter-name >myFilter</filter-name > <filter-class >xx.MyFilter</filte-class > </filter > <filter-mapping > <filter-name >myFilter</filter-name > <servlet-name >目标资源一</servlet-name > <dispatcher >REQUEST</dispatcher > </filter-mapping > <filter-mapping > <filter-name >myFilter</filter-name > <servlet-name >目标资源二</servlet-name > <dispatcher >REQUEST</dispatcher > </filter-mapping >

这种方式的配置,说明只有直接访问该目标资源时该过滤器才会起作用,对转发到该目标资源的请求将忽略不处理。

那如果我想对转发到目标资源二的请求进行过滤,那怎么办呢?答案见,下一种过滤器,forward过滤器。

2、forward过滤器

我们将web.xml文件的配置修改如下:

<filter >myFilter</filter > <filter-name >myFilter</filter-name > <filter-class >xx.MyFilter</filter-class > </filter > <filter-mapping > <filter-name >myFilter</filter-name > <servlet-name >目标资源一</servlet-name > <dispatcher >REQUEST</dispatcher > </filter-mapping > <filter-mapping > <filter-name >myFilter</filter-name > <servlet-name >目标资源二</servlet-name > <dispatcher >FORWARD</dispatcher > </filter-mapping >

工作方式如下图所示:

Servlet过滤器的工作方式是什么

我们看对目标资源二过滤的配置方式,这时过滤方式为forward,也就是说对转发到目标资源二的请求过滤,如果直接访问目标资源二,过滤器将不起作用。

3、include过滤器

理解了forward过滤器之后,include过滤器就不难理解了。以下方式:

<filter-mapping > <filter-name >myFilter</filter-name > <servlet-name >目标资源二</servlet-name > <dispatcher >INCLUDE</dispatcher > </filter-mapping >

此表示对包含了目标资源二的请求过滤,如果直接访问目标资源二,则此过滤器将不起作用。

include包含以下语句:

在JSP页面中的动作:指令包含,这时此过滤器不工作。

4、error过滤器

当我们访问一个web目标资源时,如果服务器没有找到该目标资源,那么服务器就会给出一个404错误代码。如果我们给404错误代码定义一个页面,那么当404错误发生时就会调用该页面,请看以下web.xml文件的配置:

<filter-mapping > <filter-name >myFilter</filter-name > <url-pattern >/error.jsp</url-pattern > <dispatcher >ERROR</dispatcher > </filter-mapping > <error-page > <error-code >404</error-code > <location >/error.jsp</location > </error-page >

当我们访问一个不存在的文件时,就会访问error.jsp,但是配置了过滤器对错误页面进行过滤,所以过滤器先接受到请求,然后再转发给error.jsp.

如果我们访问一个已经存在的页面,会不会调用error.jsp呢?如果这个页面中有response.sendError(404,“出错了!”);那么该错误页面仍然会被调用,过滤器也会工作。

感谢各位的阅读,以上就是“Servlet过滤器的工作方式是什么”的内容了,经过本文的学习后,相信大家对Servlet过滤器的工作方式是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Servlet过滤器的工作方式是什么

本文链接: https://www.lsjlt.com/news/289045.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Servlet过滤器的工作方式是什么
    这篇文章主要讲解了“Servlet过滤器的工作方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Servlet过滤器的工作方式是什么”吧!Servlet过滤器是可插入的 Web 组件,...
    99+
    2023-06-17
  • servlet和JSP过滤器的作用是什么
    这篇文章主要讲解了“servlet和JSP过滤器的作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“servlet和JSP过滤器的作用是什么”吧!本章内容如下:l 设计基本过滤器l 读...
    99+
    2023-06-03
  • java过滤器的工作原理是什么
    Java过滤器的工作原理是基于Servlet规范中的过滤器接口(javax.servlet.Filter)来实现的。过滤器可以用于在...
    99+
    2023-08-26
    java
  • redis布隆过滤器的工作原理是什么
    Redis布隆过滤器是一种数据结构,用于快速判断一个元素是否存在于一个集合中。它基于位数组和多个哈希函数实现。 工作原理如下: 初...
    99+
    2024-04-09
    redis
  • java servlet的工作原理是什么
    Java Servlet是一种用于在服务器上处理客户端请求的Java程序。它的工作原理如下:1. 客户端发送HTTP请求到服务器。这...
    99+
    2023-09-25
    java servlet
  • java servlet工作原理是什么
    Java Servlet是一种Java编程语言的类,用于扩展服务器功能的组件。它是在服务器端运行的,用于处理客户端请求并生成响应。S...
    99+
    2023-08-31
    java servlet
  • redis布隆过滤器的作用是什么
    Redis布隆过滤器是一种数据结构,用于快速判断一个元素是否存在于一个集合中。它可以高效地判断一个元素是否可能在集合中,但无法确保元...
    99+
    2024-04-09
    redis
  • mongodb过滤的方法是什么
    MongoDB过滤的方法有多种,常用的方法包括:1. 使用`find()`方法进行过滤:可以使用查询操作符(如`$eq`、`$gt`...
    99+
    2023-08-31
    mongodb
  • Vue的过滤器是什么
    这篇文章主要为大家展示了“Vue的过滤器是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue的过滤器是什么”这篇文章吧。1. 过滤器案例中使用到时间格式相关API1.1 对过滤器的理解定义...
    99+
    2023-06-29
  • 包过滤器是什么
    包过滤是安全映射最基本的形式,过滤器可对数据信息进行操作,在网络层实现过滤,可以为所有应用提供安全映射功能。包过滤很难做好,尤其当安全需求定义得不好且不细致的时候更是如此。这种过滤也很容易被攻破。但总比没有好。包过滤的种种弱点使它不足以保护...
    99+
    2024-04-02
  • springboot响应json null值过滤方式是什么
    本篇内容介绍了“springboot响应json null值过滤方式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!sprin...
    99+
    2023-06-21
  • flask过滤器指的是什么
    这篇文章给大家分享的是有关flask过滤器指的是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、说明过滤器(本质是函数,在模板中使用)的作用就是计算以及格式化数据,有时候我们不仅仅只是需要输出变量的值,我们...
    99+
    2023-06-14
  • PHP过滤器指的是什么
    这篇文章主要介绍了PHP过滤器指的是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是 PHP 过滤器?PHP 过滤器用于验证和过滤来自非安全来源的数据。测试、验证和过...
    99+
    2023-06-15
  • SSL代理的工作方式是什么
    本篇内容主要讲解“SSL代理的工作方式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SSL代理的工作方式是什么”吧!  代理服务器将首先接收请求,而不是网站接收请求,隐藏您的IP地址,然后...
    99+
    2023-06-22
  • 什么是布隆过滤器
    本篇内容介绍了“什么是布隆过滤器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在正式讲解布隆过滤器之前,先...
    99+
    2024-04-02
  • SpringBootFilter过滤器的使用方式
    前言: 要想使用 filter,需要写一个方法继承 Filter 类,我们写如下两个自己的 Filter 类,首先是 FirstFilter 类,其中 ...
    99+
    2024-04-02
  • C#数组工作方式是什么
    本篇内容主要讲解“C#数组工作方式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#数组工作方式是什么”吧!C#数组从零开始建立索引,即数组索引从零开始。C#数组工作方式与在大多数其他流行...
    99+
    2023-06-17
  • redis布隆过滤器使用方法是什么
    Redis布隆过滤器是一种数据结构,用于快速判断一个元素是否可能存在于一个集合中。其主要功能是判断一个元素是否可能存在于一个集合中,...
    99+
    2024-04-02
  • java集合流过滤的方法是什么
    Java集合流过滤的方法是使用filter()方法。filter()方法接受一个Predicate参数,用于筛选集合中满足条件的元素...
    99+
    2023-09-11
    java
  • Redis布隆过滤器大小的算法公式是什么
    今天小编给大家分享一下Redis布隆过滤器大小的算法公式是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. 简介客户端...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作