一、Servlet过滤器基础
Servlet过滤器是一个小型的Web组件,能拦截请求和相应,主要用来完成一些通用的操作。比如编码的过滤,判断用户的登陆状态等等。Servlet过滤器的适用场合:
A.认证过滤
B.登录和审核过滤
C.图像转换过滤
D.数据压缩过滤
E.加密过滤
F.令牌过滤
G.资源访问触发事件过滤
二、Servlet过滤器接口的构成:
所有的Servlet过滤器类都必须实现javax.servlet.Filter接口。这个接口含有3个过滤器类必须实现的方法:
- init(FilterConfig cfg) 这是Servlet过滤器的初始化方法,性质等同与servlet的init方法。
- doFilter(ServletRequest,ServletResponse,FilterChain) 完成实际的过滤操作,当请求访问过滤器关联的URL时,Servlet容器将先调用过滤器的doFilter方法。FilterChain参数用于访问后续过滤器
- destroy() Servlet容器在销毁过滤器实例前调用该方法,这个方法中可以释放Servlet过滤器占用的资源。,性质等同与servlet的destory()方法。
三、Servlet过滤器的创建步骤:
A.实现javax.servlet.Filter接口的servlet类
B.实现init方法,读取过滤器的初始化函数
C.实现doFilter方法,完成对请求或过滤的响应
D.调用FilterChain接口对象的doFilter方法,向后续的过滤器传递请求或响应
F.在web.xml中配置Filter
四、Filter体系结构及应用:
1、FilterConfig接口:
public abstract String getFilterName();
public abstract ServletContext getServletContext();
public abstract String getInitParameter(String s);
public abstract Enumeration getInitParameterNames();
2、FilterChain接口
由容器实现,容器将其实例作为参数传入过滤器对象的doFilter方法中。过滤器对象使用FilterChain对象来调用过滤链中下一个过滤器。
public abstract void doFilter(request,response);
2.使用过滤器处理中文问题
当用用户登陆页面输入帐号时,如果输入是中文,后台servlet再次输出这个内容时,可能就会是乱码,这是因为serlvet中默认是以ISO-8859-1格式编码的,如果后台有多个Servlet,多个参数,这样就不合适,这个问题,我们可以通过一个过滤器统一解决,使后台的输出输出都支持中文!将ISO-8859-1转码为GBK的那段代码!
3.使用过滤器认证用户:
每个过滤器也可以配置初始化参数,可以将不需要过滤的地址配置到这个Filter的配置参数中,过滤时,如果请求地址在配置参数中,则放行,这样就避免了在程序中硬编码。每个Filter中初始化时,都可以得到配置对象,在Filter中配置二个不需要过滤的地址,一个是登陆页面,一个是执行登陆认证的servlet;
五、Servlet监听器
1、Servlet监听器概述
类似与Swing界面应用开发,Servlet也可以创建监听器,以对Servlet容器,或Servlet中以象的事件做出反应。Servlet监听器主要有以下几种:
ServletRequestListener ,ServletRequestAttributeListener,
HttpSessionActivationListener ,HttpSessionBindingListener ,
HttpSessionAttributeListener,HttpSessionListener,
ServletContextListener等等。
这些监听器主要用来监听session,request,application这三个对象里存取数据的变化。
与过滤器一样,监听器需要在web.xml中声明:
<listener>
<listener-class>实现类的完整包路径</listener-class>
</listener>
2、监听器的作用
更加方便的控制application、session和request对象发生的特定事件,并对这些事件做集中处理。
分享到:
相关推荐
JAZZ Web基础组件开发源码+PPT,学习好帮手!
然而,memcached的基础知识远远未能像其他Web技术那样普及,memcached在国内的大规模应用也在急速兴起。 第1 章 memcached的基础 第2章 理解memcached的内存存储 第3 章 memcached的删除机制和发展方向 第4 章 ...
Java Web组件技术 讲义.pdf 大学基础教程
Vue移动端基础组件 - 对话框
Web组件-Ⅱ——JSP初步基础让你更快学会
React-BaseWeb 从基础Web设计组件中学习React
Web__Vue组件和路由基础.mp4
Java Web开发实例大全(提高卷)筛选、汇集了Java Web开发从基础知识到高级应用各个层面的大量实例及源代码,共有600个左右,每个实例及源代码按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析...
custom元素充当基础react组件的包装器。 以与使用标准HTML元素相同的方式在任何框架(vue,svelte,angular,ember,canjs)中使用这些自定义元素。 react-to-webcomponent : 在所有现代浏览器中均可使用。 ...
组件计划-仅基础.rplib Axure低保真组件库.rplib SVG矢量图标元件库.rplib 微信小程序元件库 Axure数据可视化图表组件库包含全国地图 ipad.rp iPhone手机模型元件 iphone元件库(全) WEB端原型通用元件库
Web前端框架应用:第2章 Vue开发基础-组件.pptx
WEB程序设计-JSP(第2章 JSP开发基础).pdf WEB程序设计-JSP(第4章 JSP内置对象).pdf WEB程序设计-JSP(第6章 Servlet技术).pdf WEB程序设计-JSP(第7章 JSP实用组件).pdf WEB程序设计-JSP(第9章 JSP高级程序设计)....
Auxre 组件库,精美、大气、简洁、实用。包含组件: 自用PC端基础组件库 WEB设计组件库 WEB后台组件库 通用web组件库
Java Web开发实例大全(提高卷)筛选、汇集了Java Web开发从基础知识到高级应用各个层面的大量实例及源代码,共有600个左右,每个实例及源代码按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析...
第3章 Vue开发基础(下) 全局API 全局配置 实例属性 组件进阶 学习目标 目录 ☞点击查看本节相关知识点 ☞点击查看本节相关知识点 实例属性 ☞点击查看本节相关知识点 ☞点击查看本节相关知识点 组件进阶 知识架构 ...
本作品是在去年发布的交互原型Web元件库v1.0的基础上优化而来的,在这一年多的时间里我们收集了大量的用户使用反馈,在旧版基础上经过了整体重构后推出了这个全新版本。新版本正式命名为:WEB前后端交互原型通用元件...
对学习和设计产品,绘制原型系统,产品经理设计产品原型,提供了很多的基础元件库,再也不用为了基础元件而烦恼了,大家一起努力,改变未来中国产品经理的设计环节。
随着Web 越来越规范和标准的统一,Web组件化技术不断革新,移动端开发不断升华,出现了大量的开源前端框架: Bootstrap 主流框架之一,Bootstrap 是基于 HTML、CSS、JavaScript的,它简洁灵活,使得 Web 开发更加...
HaloE移动云前端组件库是一套为前端工程师提供的基于Vue3.X的B端基础组件库。 HaloE基于[普适]、[多元]、[开放]、[共生]的设计价值观建立一套企业级设计体系。提供统一的、符合B端产品设计企标规范的前端组件库,...
组件(component)技术是各种软件重用方法中最重要的一种方法,也是分布式计算和Web服务的基础。网络应用中的软件组件,又被称为中间件(middleware)。 组件技术的应用现在已经十分广泛,从Windows编程中使用的各种...