- 1、本文档共63页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
JavaWeb编程技术本章首先绍Web过滤器的开发与配置,然后介绍Web应用中事件和事件监听器,最后讨论Servlet多线程问题。过滤器的开发与配置Web应用事件类型及事件对象使用监听器处理Web事件Servlet的多线程问题第7章过滤器和监听器过滤器用于拦截传入的请求或传出的响应,并监视、修改或以某种方式处理这些通过的数据流。Web应用程序运行过程中可能发生各种事件,如应用上下文事件、会话事件及请求有关的事件等,Web容器采用监听器模型处理这些事件。
Web过滤器过滤器(filter)是Web服务器上的组件,它拦截客户对某个资源的请求和响应,对其进行过滤。7.1.1什么是过滤器7.1.2过滤器API7.1.3简单的编码过滤器7.1.4@WebFilter注解7.1.5在web.xml中配置过滤器7.1
什么是过滤器7.1.1图7-1说明了过滤器的一般概念,其中F1是一个过滤器。它显示了请求经过滤器F1到达Servlet,Servlet产生响应再经过滤器F1到达客户。这样,过滤器就可以在请求和响应到达目的地之前对它们进行监视。可以在客户和资源之间建立多个过滤器,从而形成过滤器链(filterchain)。图7-2说明了这个过程。
什么是过滤器7.1.11.过滤器是如何工作的当容器接收到对某个资源的请求时,它首先检查是否有过滤器与该资源关联。如果有过滤器与该资源关联,容器先把该请求发送给过滤器,而不是直接发送给资源。在过滤器处理完请求后,它将做下面三件事:将请求发送到目标资源。如果有过滤器链,它将把请求(修改过或没有修改过)发送给下一个过滤器。直接产生响应并将其返回给客户。当请求返回到客户时,它将以相反的方向经过同一组过滤器。过滤器链中的每个过滤器都可能修改响应。2.过滤器的用途Servlet规范中提到的过滤器的一些常见应用包括:验证过滤器、登录和审计过滤器、数据压缩过滤器、加密过滤器和XSLT过滤器等。
过滤器API7.1.1表7-1描述了过滤器API,其中HttpFilte类定义在jakarta.servle.httpt包中,其他接口和类定义在jakarta.servlet包中。接口说明Filter所有的过滤器都需要实现该接口FilterConfig过滤器配置对象。容器提供了该对象,其中包含了该过滤器的初始化参数GenericFilter该抽象类实现了FilterConfig接口的方法和Filter接口的init()方法HttpFilter该抽象类扩展了GenericFilter类,实现针对HTTP协议的过滤器FilterChain过滤器链对象
过滤器API7.1.21.Filter接口Filter接口是过滤器API的核心,所有的过滤器都必须实现该接口。该接口声明了三个方法,分别是init()、doFilter()和destroy(),它们是过滤器的生命周期方法。init()是过滤器初始化方法。在过滤器的生命周期中,init()仅被调用一次。在该方法结束之前,容器并不向过滤器转发请求。该方法的声明格式为:publicvoidinit(FilterConfigfilterConfig)参数FilterConfig是过滤器配置对象,通常将FilterConfig参数保存起来以备以后使用。该方法抛出ServletException异常。
过滤器API7.1.2doFilter()是实现过滤的方法。如果客户请求的资源与该过滤器关联,容器将调用该方法,格式如下:publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException;该方法执行过滤功能,对请求进行处理或者将请求转发到下一个组件或者直接向客户返回响应。注意,request和response参数被分别声明为ServletRequest和ServletResponse的类型。因此,过滤器并不只限于处理HTTP请求。如果过滤器用在使用HTTP协议的Web应用程序中,这些变量就分别指HttpServletRequest和HttpServletResponse类型的对象。在使用它们之前应把这些参数转换为相应的HTTP类型。
过滤器API7.1.2destroy()是容器在过滤器对象上调用的最后一个方法,声明格式为:publicvoiddestroy();该方法给过滤器对象一个释放其所获得资源的机会,在结束服务之前执行一些清理工作。
过滤器API7.1.22.FilterConfig接口FilterConfig对象是过滤器配置对象,通过该对象可以获得过滤器
您可能关注的文档
- Java Web编程技术 课件 第1章JavaWeb起步入门.pptx
- Java Web编程技术 课件 第2章JavaServlet技术.pptx
- Java Web编程技术 课件 第3章JSP技术基础.pptx
- Java Web编程技术 课件 第4章EL与JSTL.pptx
- Java Web编程技术 课件 第5章Web数据库编程.pptx
- Java Web编程技术 课件 第6章会话跟踪技术.pptx
- Java Web编程技术 课件 第8章Web安全性入门.pptx
- Java Web编程技术 课件 第9章Spring快速入门.pptx
- Java Web编程技术 课件 第10章SpringMVC入门 .pptx
- Java Web编程技术 课件 第11章数据绑定与表单标签库 .pptx
文档评论(0)