《Servlet进阶 (2).ppt》由会员分享,可在线阅读,更多相关《Servlet进阶 (2).ppt(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、大连理工大学出版社大连理工大学出版社 JSP与与Servlet开发技术与典型应用教程开发技术与典型应用教程 第第7章章 Servlet进阶进阶v7.1 Servlet过滤器7.1.1 Servlet过滤器的原理及用途7.1.2 Servlet过滤器的结构7.1.3 一个使用Servlet过滤器的应用程序体验延伸阅读:网站中如何使用过滤器链?v7.2 Servlet监听器7.2.1 Servlet监听器的原理及用途7.2.2 Servlet监听器的类型7.2.3 一个使用Servlet监听器的应用程序体验第第7章章 Servlet进阶进阶教学要求教学要求1掌握:Servlet过滤器类的创建和配置
2、,Servlet监听器类的创建和配置2理解:Servlet过滤器的原理和用途,Servlet监听器的原理和用途7.1 Servlet过滤器过滤器v7.1.1Servlet过滤器的原理及用途n Servlet过滤器能够对Servlet容器的请求和响应对象进行检查和修改。过滤器本身并不产生请求和响应对象,它只是提供过滤功能。n 过滤器原理如图所示:7.1 Servlet过滤器过滤器v7.1.1Servlet过滤器的原理及用途n 过滤器用途:当我们构建自己的Web应用时,有时候需要在用户请求服务器的资源之前,做一些有针对性的操作,比如说对客户进行访问控制,对传输的数据进行统一编码转换,过滤不雅文字等
3、,此时就可以使用过滤器实现。n 例如,我们希望Web应用能针对特定的IP进行访问控制,如图所示,就可使用过滤器实现。7.1 Servlet过滤器过滤器v7.1.1Servlet过滤器的原理及用途n Servlet过滤器具备如下的特征:1.Servlet过滤器与指定的目标资源URL相关联,当客户端请求访问此URL时,才会触发过滤器工作。2.Servlet过滤器可以对请求和响应对象进行检查和修改。3.如果有需要,可以为某个URL部署多个过滤器,组成一个过滤链来执行多 种检查或操作。7.1 Servlet过滤器过滤器v7.1.2 Servlet过滤器的结构Servlet过滤器是一个实现了javax.
4、servlet.Filter接口的Java类,接口中包含3个方法必须实现:1init(FilterConfig config):该方法负责进行过滤器的初始化操作,Servlet容器在创建了Servlet过滤器实例后就会调用这个方法。在这个方法中可以利用参数config读取web应用配置文件web.xml中的过滤器初始化参数。2doFilter(ServletRequest request,ServletResponse response,FilterChain chain):该方法负责完成实际的过滤操作,当客户端请求与过滤器关联的URL时,Servlet容器将先调用此方法进行过滤操作。3des
5、troy():该方法在Servlet容器销毁过滤器实例前调用,可在此方法中释放过滤器占用的资源。7.1 Servlet过滤器过滤器v7.1.2 Servlet过滤器的结构使用Servlet过滤器,应按照如下2个步骤进行:1创建Servlet过滤器类。2在web.xml中配置过滤器,将过滤器与URL关联起来。7.1 Servlet过滤器过滤器v7.1.2 一个使用Servlet过滤器的应用程序体验案例:拦截非管理员IP对admin.jsp页面的访问7.1 Servlet过滤器过滤器v7.1.2 一个使用Servlet过滤器的应用程序体验案例实现步骤:1.在MyEclipse中新建一个Java W
6、eb应用ExampleFilter,编辑admin.jsp和error.jsp。2.按照使用Servlet过滤器的2个步骤创建和配置过滤器:(1)创建Servlet过滤器类IPFilter (2)在web.xml中配置过滤器,将过滤器与admin.jsp关联起来,对其起作用。7.1 Servlet过滤器过滤器v延伸阅读:网站中如何使用过滤器链?过滤器链:为某个资源配置多个过滤器,即形成过滤器链。案例案例:网站中有suc.jsp页面,对其的访问权限要求比较高,规定必须是本机并且是通过了登陆验证的客户才可以访问,而网站中的其它页面权限要求较低,则只要是本机IP地址即可访问。实现思路实现思路:要达到
7、上述效果,应对suc.jsp添加2个过滤器,第1个用来过滤IP,看是否是本机IP地址,第2个用来检查客户是否经过了登陆验证,只有经过了登陆验证才能请求到suc.jsp,否则就拦截客户的请求,让客户返回index.jsp进行登陆验证。7.2 Servlet监听器监听器v7.2.1 Servlet监听器的原理及用途Servlet监听器也是Web应用开发中的一种重要组件,它主要用来对Web应用中的一些事件进行监听。比如客户请求状态的变化,会话状态的变化等,这些改变即为事件,Servlet监听器可以监听这些事件并能对其进行处理。7.2 Servlet监听器监听器v7.2.2 Servlet监听器的类型
8、Servlet监听器监听器3种类型:1.ServletContext的监听器:可以监听ServletContext对象的创建、销毁,还可以对ServletContext对象上绑定属性的状态改变事件进行监听,如增加了属性、删除了属性或给属性设了新值。2.session的监听器:可以监听session的创建、销毁,session的active状态改变,session上的对象绑定状态,以及session上绑定属性的状态改变事件。3.request的监听器:可以监听客户端请求的创建、销毁,还可以监听request上绑定属性的状态改变事件。7.2 Servlet监听器监听器v7.2.3 一个使用Serv
9、let监听器的应用程序体验案例:监控Web应用ExampleListener的启、停状态,每次启动或关闭此Web应用都希望能将其记录下来,如下图所示:7.2 Servlet监听器监听器v7.2.3 一个使用Servlet监听器的应用程序体验监听器的开发步骤:1创建Servlet监听器类。2在web.xml中配置监听器。典型模块应用典型模块应用v案例 7-1转码过滤器典型模块应用典型模块应用v案例 7-2过滤留言者典型模块应用典型模块应用v案例 7-3监听上线人员数量实战演练实战演练实战 7-1 使用过滤器对网站的首页进行流量统计,当用户访问该页面时显示当前的访问流量。要注意统计流量时的同步问题。实战 7-2 使用过滤器对响应信息中的敏感字符进行过滤。假设“鬼”字看做是敏感字符,要求响应到客户端时将其修改为其他字符。实战 7-3 使用监听器实现服务器本机免登陆。如果是服务器本机访问网站的首页,则显示欢迎消息,如果是远程客户机访问网站首页则转至登陆页要求远程客户先登陆。