Servlet后续的尾(yi)巴--------Filter过滤器

                              -------载录自  http://www.blogjava.net/yangaiyou/archive/2007/08/29/140854.html  感谢博主心如止水 一心向佛 描写出这么的具体。

笔记:

      servlet过滤器是小型的web组件,它能够处理传入的请求和传出的响应。Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servlet之前预处理request,也可以在离开servlet时处理response。它具有高度的透明性,无需更改应用程序代码,就可以根据需要添加、修改或从应用程序中将它删除。 一个filter 包括:  1. 在servlet被调用之前截获;  2. 在servlet被调用之前检查servlet request;  3. 根据需要修改request头和request数据;  4. 根据需要修改response头和response数据;  5. 在servlet被调用之后截获. 

     -----------正是基于上面的诸多原因,所以对于 Filter(过滤器代码)万万不可出错,如果出错,造成的结果则是:

        对于整个的服务器无法启动

你能够配置一个filter 到一个或多个servlet;单个servlet或servlet组能够被多个filter 使用。几个实用的filter包括:用户辨认filter,日志filter,审核filter,加密filter,符号filter,能改变xml内容的XSLT filter等。     类如:

其中<filter-Class>是过滤器的路径;<filter-mapping>定义了该过滤器只过滤以.do结尾的URL,当然你也可以稍做修改让它过滤.jsp文件。

一个客户化的过滤器要实现Filter接口的三个方法:init()、destroy()和doFilter()。     1. init():在容器实例化过滤器时调用,该方法接受一个FilterConfig类型的对象做为输入。     2. destroy():执行一些清理操作。     3. doFilter():类似servlet的doPost()、doGet()方法,执行具体的过滤任务。

例如: 

下面这张便是Filter执行的过程图:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏帘卷西风的专栏

关于linux系统端口查看和占用的解决方案

转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog)

1102
来自专栏IMWeb前端团队

webpack原理与实战

本文作者:IMWeb 吴浩麟 原文出处:IMWeb社区 未经同意,禁止转载 image.png webpack是一个js打包工具,不一个完整的前端...

4089
来自专栏桥路_大数据

使用git将本地项目推送到码云私有仓库

4134
来自专栏云计算教程系列

如何将Ubuntu从16.04升级到18.04

Ubuntu 18.04是一个长期支持(LTS)版本,LTS 版本每两年发布一次,而 Ubuntu 18.04 是自 2016 年以来的第一个长期支持版本。Ub...

2.8K4
来自专栏JavaEE

版本管理的倚天剑 --- git前言:一、git简介:二、git的安装:三、git的使用:四、码云的使用:总结:

要想成为武林高手,除了要身怀绝技,还需要神兵利器相配。git绝对称得上是版本管理工具中的倚天剑。正所谓好马配好鞍,相信用上git的你一定能称霸码林,独步天下!

1133
来自专栏封碎

ubuntu升级之后启动不了的解决 博客分类: Linux UbuntuLinuxDebianAndroidEclipse

我的ubuntu是用wubi安装的,今天准备搞android的ndk,所以把开发环境给配置了一下,jdk、android的sdk、ndk,还有eclipse...

1002
来自专栏Java成神之路

Maven之 环境搭建

这几天开始了maven的学习,看了孔浩老师的视频(http://pan.baidu.com/s/1o7bg2h0),以及黄勇大牛的博客(http://my.os...

2101
来自专栏服务端技术杂谈

Service Mesh优化

Provider负载均衡:加权轮训,最小响应时间Tcp连接负载均衡:支持按最小请求选择Tcp连接Dubbo请求:批量encodeTcp参数优化:开启TCP_N...

1232
来自专栏Google Dart

AngularDart4.0 高级-部署 顶

部署AngularDart web应用程序与部署其它web应用程序类似 , 除了你需要先将应用程序编译成JavaScript. 本页描述如何编译你的应用程序—使...

1001
来自专栏运维技术迷

Zabbix实现QQ报警配置

(说明:这里借助Mojo-Webqq的perl模块,更详细的api参考:https://github.com/sjdy521/Mojo-Webqq/blob/...

6377

扫码关注云+社区

领取腾讯云代金券