SERVLET过滤器

在这里插入图片描述

在这里插入图片描述

SERVLET过滤器

全球因特网用户使用不同类型的Web浏览器访问应用服务器上存储的Web应用程序。每个浏览器根据对应的Web浏览器窗口中的设置显示应用程序中的信息。Web应用程序可能会有一些客户机的Web浏览器不支持的HTML标记或功能。这种情况下,应用程序在客户机的Web浏览器中可能运行,可能不运行,还可能生成不需要的输出。为了避免这种问题,在调用servlet之前需要识别浏览器的类型和向Web应用程序发送请求的客户机和其他特定的信息。可以使用servlet过滤器在调用特定servlet处理请求之前检索浏览器的类型和其他客户机信息。识别出浏览器类型和客户机信息后,可以自定义应用程序的输出,以便在不同浏览器中查看该输出。

servlet过滤器是一种截取客户机和服务器之间的请求和向的对象。过滤器能修改Web客户机段所发送请求的标头和内容,并将其转发给目标servlet。过滤器还能截取并操作servlet所返回响应的标头和内容。servlet过滤器对象与servlet不同,因为其只向其他Web应用程序传输请求和响应,本身不处理请求也不生成响应。servlet过滤器作为独立的程序开发,可以附加到各种Web应用程序上。


在这里插入图片描述

1. 使用过滤器的优点

servlet过滤器监控发送给servlet应用程序处理的请求和servlet返回给客户机的响应。使用servlet过滤器的各种优点有:

  1. 可以识别Web客户端所发送请求的类型,如HTTP和FTP,然后调用需要处理该请求的servlet。
  2. 使用servlet过滤器可以在客户机访问servlet之前就使客户机无效。
  3. 可以从请求参数中检索用户信息来验证用户。
  4. 可以使用servlet过滤器识别关于MIME类型和请求的其他标头内容的信息。然后可以使用过滤器将MIME类型转换成与servlet兼容的类型。
  5. 可以使用servlet过滤器帮助servlet与外部资源通信。例如,可以使用过滤器注册数据库驱动程序,以便servlet使用该驱动程序进行数据库连接。
  6. 可以使用servlet过滤器在将响应发送给客户机之前截取并压缩响应。还可以在将响应返回给客户机之前在过滤器中进行加密。

在这里插入图片描述

2. 编写过滤器

您可以开发servlet数据库来执行各种功能,如计算servlet的请求处理时间、识别发送响应的浏览器的类型以及识别用户所发送内容的MIME类型。可以用过个过滤器过滤客户机请求的信息。这些过滤器即组成了过滤器链。如果应用程序使用一组过滤器来过滤请求和响应,则需要在部署时就显式隐射调用这些过滤器及其目标servlet的顺序。


在这里插入图片描述

3. 创建过滤器

Servlet API提供了javax.servlet包的Filter接口、FilterConfig接口和FilterChain接口,可用于开发过滤器。要开发过滤器,需要在过滤器类中实现Filter接口。Filter接口定义了Web容器为管理过滤器的生命周期而调用的方法。下表描述了过滤器需要重写的javax.servlet.Filter接口的各种方法。

方法描述
Public void int ( FilterConfig filt_cnfg ) throws ServletException初始化过滤器。Web容器通过将包含过滤器初始化信息FilterConfig接口的对象来调用此方法。
Public void doFilter ( ServletRequest serv_req, ServletResponse serv_resp, FilterChain filter_chain) throws IOException,Servlet

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/674056.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MIMIC-IV官方视图解析 - AKI 肌酐 (kdigo_creatinine、kdigo_stages)

判断AKI我们可以通过肌酐和尿量两个指标来看, 今天我们主要提取肌酐。 kidgo指南的表格 AKI诊断标准:符合以下情况之一者即可被诊断为AKI:①48小时内Scr升高超过26.5μmol/L(0.3mg/dl);②Scr升高超过基线1.5倍——确认或推测为7…

利用Intersection Observer实现图片懒加载性能优化

ntersection Observer是浏览器所提供的一个 Javascript API,用于异步的检测目标元素以及祖先或者是顶级的文档视窗的交叉状态 这句话的意思就是: 我们可以看的图片当中,绿色的 target element(目标元素),…

删除和清空Hive外部表数据

外部表和内部表区别 未被external修饰的是内部表(managed table),被external修饰的为外部表(external table); 区别: 内部表数据由Hive自身管理,外部表数据由HDFS管理; …

SpringBoot和SpringMVC

目录 一、springboot项目 (1)创建springboot项目 (2)目录介绍 (3)项目启动 (4)运行一个程序 (5)通过其他方式创建和运行springboot项目 二、SpringMVC…

高可用 k8s 1.29 一键安装脚本, 丝滑至极

博客原文 文章目录 集群配置配置清单集群规划集群网络规划 环境初始化主机配置 配置高可用ApiServer安装 nginx安装 Keepalived 安装脚本需要魔法的脚本不需要魔法的脚本配置自动补全加入其余节点 验证集群 集群配置 配置清单 OS: ubuntu 20.04kubernetes&#xf…

【Scala】1. 变量和数据类型

1. 变量和数据类型 1.1 for begining —— hello world 新建hello.scala文件,注意object名字与文件名一致。 object hello { def main(args:Array[String]): Unit { println("hello world!") } }运行后打印结果如下: hello world!Pr…

【射影几何13 】梅氏定理和塞瓦定理探讨

梅氏定理和塞瓦定理 目录 一、说明二、梅涅劳斯(Menelaus)定理三、塞瓦(Giovanni Ceva)定理四、塞瓦点的推广4.1 共线定理4.2 三角形外的塞瓦点 一、说明 在射影几何中,梅涅劳斯(Menelaus)定理和塞瓦定理是…

最大子数组和[中等]

一、题目 给定一个长度为n的环形整数数组nums,返回nums的非空 子数组 的最大可能和 。 环形数组 意味着数组的末端将会与开头相连呈环状。形式上,nums[i]的下一个元素是nums[(i 1) % n],nums[i]的前一个元素是nums[(i - 1 n) % n]。 子数…

论文封面下划线总是对不齐,这3步你肯定没做!

论文封面 在写论文时,总会遇到论文封面下划线对不齐,学会下面这三招轻松搞定封面。 解决方法 ①选中文字,点击“插入”,选择“表格”,找到“文本转化为表格”。列数为2,文字分割位置选空格,设置…

第21讲:动态内存管理

1.为什么要有动态内存分配 2.malloc和free 3.calloc 4.realloc 5.笔试题 6.总结c/c中程序内存区域划分 1.为什么要有动态内存分配 为了调整申请的空间大小,使程序员可以申请和释放空间,提高程序的灵活性 2.malloc和free 作用:分配一块…

深入了解Redis:选择适用于你的场景的持久化方案

自然语言处理的发展 文章目录 自然语言处理的发展强烈推荐前言:Redis提供了几种主要的持久化方案:RDB快照持久化:工作原理: AOF日志文件持久化:混合持久化: 总结强烈推荐专栏集锦写在最后 强烈推荐 前些天…

相机图像质量研究(7)常见问题总结:光学结构对成像的影响--镜片固化

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…

戴上HAUWEI WATCH GT 4,解锁龙年新玩法

春节将至,华为WATCH GT 4作为一款颜值和实力并存的手表,能为节日增添了不少趣味和便利。无论你是钟情于龙年表盘或定制属于自己的表盘,还是过年用来抢红包或远程操控手机拍全家福等等,它都能成为你的“玩伴”。接下来,…

C语言 服务器编程-日志系统

日志系统的实现 引言最简单的日志类 demo按天日志分类和超行日志分类日志信息分级同步和异步两种写入方式 引言 日志系统是通过文件来记录项目的 调试信息,运行状态,访问记录,产生的警告和错误的一个系统,是项目中非常重要的一部…

零基础学Python之整合MySQL

Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。 不同的数据库你需要下载不同的DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。 DB-API 是一个规范. 它…

【51单片机】要实现动静态数码管,你首先需要知道这些【数码管项目前置知识】

前言 大家好吖,欢迎来到 YY 滴单片机系列 ,热烈欢迎! 本章主要内容面向接触过单片机的老铁 主要内容含: 本章节内容为【实现动静态数码管】项目的第一个模块完整章节:传送门 欢迎订阅 YY滴C专栏!更多干货持…

Unity接入GVoice腾讯实时语音

Unity接入GVoice腾讯实时语音 一、介绍二、注册GVoice创建项目语音服务1.创建项目2.申请语音权限3.项目管理查看SDK初始化的一些参数和基本信息4.GVoice检测 三、SDK下载SDK是分为两种类型:独立版集成板 SDK放入Unity工程中 四、语音代码写法五、GVoice踩坑语音权限…

【canvas】获取鼠标点击位置坐标的颜色信息

在项目当中,要实现某业务需求例如PS魔棒功能时,则需要获取点击坐标的颜色信息。 功能不复杂,代码也很少,一看便知~~ 核心API为getImageData,传入4个参数,前2个为点击坐标xy,后2个都传1&#xf…

python调用golang中函数方法

一、原因说明:由于simhash方法有多种实现方式,现python中simhash方法与golang中的不一样,需要两者代码生成结果保持一致,故采用python中的代码调用golang编译的so文件来实现。 环境配置:①Windows10系统要有gcc环境&a…

ADSelfService Plus发布离线MFA功能,强化远程工作安全性

ManageEngine ADSelfService Plus推出离线多因素身份验证,提升远程工作安全性确保通过先进的验证方法对企业数据进行授权访问,无论时间、地点或连接问题如何允许远程用户安全进行身份验证,即使未连接到认证服务器或互联网使用高度安全的基于T…