企业级JavaWeb编程技术Servlet&JSP本科软件专业第6章 使用Servlet 和过滤器

上传人:w****i 文档编号:92361926 上传时间:2019-07-09 格式:PPT 页数:17 大小:1.70MB
返回 下载 相关 举报
企业级JavaWeb编程技术Servlet&JSP本科软件专业第6章 使用Servlet 和过滤器_第1页
第1页 / 共17页
企业级JavaWeb编程技术Servlet&JSP本科软件专业第6章 使用Servlet 和过滤器_第2页
第2页 / 共17页
企业级JavaWeb编程技术Servlet&JSP本科软件专业第6章 使用Servlet 和过滤器_第3页
第3页 / 共17页
企业级JavaWeb编程技术Servlet&JSP本科软件专业第6章 使用Servlet 和过滤器_第4页
第4页 / 共17页
企业级JavaWeb编程技术Servlet&JSP本科软件专业第6章 使用Servlet 和过滤器_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《企业级JavaWeb编程技术Servlet&JSP本科软件专业第6章 使用Servlet 和过滤器》由会员分享,可在线阅读,更多相关《企业级JavaWeb编程技术Servlet&JSP本科软件专业第6章 使用Servlet 和过滤器(17页珍藏版)》请在金锄头文库上搜索。

1、,企业级Java Web编程技术 Servlet & JSP,新世纪应用型高等教育 软件专业系列规划教材,使用Servlet 和过滤器,第6章,使用Servlet 和过滤器,第6章,6.1 了解Servlet的类层次结构,第6章,6.1 了解Servlet的类层次结构,第6章,说明: 创建协议无关的Servlet: 继承javax.servlet.GenericServlet类; 创建基于HTTP协议的servlet: 继承javax.servlet.http.HttpServlet类; GenericServlet类的service()是抽象方法,它的参数分别为ServletRequest、

2、ServletResponse,前者包含了从客户端发送给服务器的信息,后者则包含了服务器返回给客户端的信息; HttpServlet类已经实现了service()方法,请不要在自己的servlet中重写此方法,该方法根据客户端请求方式调用对应的doXxx()方法,主要是调用doGet( ) 和 doPost( ) (默认为doGet() ,这两个方法的参数为HttpServletRequest、HttpServletResponse对象。,6.2 Servlet的线程安全,第6章,6.2.1 Servlet的多线程机制 Servlet体系结构是建立在Java多线程机制之上的,它的生命周期是由W

3、eb容器负责的。当客户端第一次请求某个Servlet时,Servlet容器将会根据web.xml配置文件实例化这个Servlet类。当有新的客户端请求该Servlet时,一般不会再实例化该Servlet类,也就是有多个线程在使用这个实例,Servlet容器会自动使用线程池等技术来支持系统的运行,如图6-2所示。,6.2 Servlet的线程安全,第6章,6.2.2 Servlet的线程安全问题,图6-3 a和b用户浏览器输出,6.3 描述过滤器,第6章,过滤器(Filter)是从Servlet2.3规范开始新增的功能,并在2.4规范中得到增强。过滤器是小型号的Web组件,它负责拦截请求和响应,

4、过滤器通常是封装了一些功能的Web组件,这些功能虽然重要,但是对于客户端请求诉处理或是发送的响应来说不是决定性的。典型的应用包括编码转换、用户登录判断与页面访问权限判断等。,6.3 描述过滤器,第6章,6.3.1 过滤器概述 日常生活中的“过滤”例子,如自饮水的“过滤”、信息“过滤”、香烟的“过滤嘴”、用筛子筛选沙子等。 过滤器(Filter)是Servlet 2.3规范中新增加的功能,并在Servlet 2.4、Servlet 2.5规范中进一步增强、完善。过滤器,就是在源数据和目的数据之间起过滤作用的中间组件。在Web开发中,过滤器是服务器端的Web组件,它可以拦截客户端和目标资源之间的请

5、求与响应信息,并监视、修改或以某种方式处理正在交互的数据,如图6-4所示。,图6-4 过滤器在Web应用中的位置,6.3 描述过滤器,第6章,6.3.2过滤器的工作原理及作用 Servlet过滤器是实现了javax.servlet.Filter接口的服务器端程序,其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作;同时还可进行逻辑判断,如用户是否已经登陆、有没有权限访问该页面等等工作。它是随你的web应用启动而启动的,只初始化一次,以后就可以拦截相关请求,只有当你的web应用

6、停止或重新部署的时候才销毁。 当在 web.xml 中注册了一个 Filter 来对某个 Servlet 程序进行拦截处理时,这个 Filter 就成了 Servlet 容器与该 Servlet 程序的通信线路上的一道关卡,该 Filter 可以对 Servlet 容器发送给 Servlet 程序的请求和 Servlet 程序回送给 Servlet 容器的相应进行拦截,可以决定是否将请求继续传递给 Servlet 程序,以及对请求和相应信息是否进行修改。,6.3 描述过滤器,第6章,在Web应用程序中,过滤器的主要作用如下: (1)对用户请求进行统一认证(如:限制IP、不允许黑名单用户访问)

7、(2)对用户请求进行记录、审核(如:写入日志等) (3)对用户发送的数据进行过滤或替换(如:过滤不良信息等) (4)转换图像格式 (5)对响应内容进行压缩,减少传输量 (6)对请求、响应内容进行加密、解密操作,6.3 描述过滤器,第6章,6.3.3 过滤器的类和接口 过滤器本质上是一个Servlet类,只是它要实现Filter接口。与过滤器有关的接口有三个,分别是:Filter、FilterConfig、FilterChain,位于javax.servlet包中。从实现的角度来看,过滤器必须实现Filter接口,然后使用这个过滤器类中的FilterChain和FilterConfig接口,该过

8、滤器的引用将传递给FilterChain对象,以允许过滤器把控制权传递给链接中的下一个资源。FilterConfig对象将由容器提供给过滤器,以允许访问该过滤器的初始化数据。,6.3 描述过滤器,第6章,6.3.4过滤器链 在一个Web应用程序中,可以部署多个过滤器,这些过滤器组成了一个过滤器链。过滤器链中的每个过滤器负责特定的操作和任务,客户端的请求在这些过滤器之间传递,直到目标资源,如图6-6所示。,图6-6多个过滤器组成过滤器链,6.4 理解过滤器的生命周期,第6章,既然过滤器是一个Servlet,学习时就可以把过滤器与servlet进行类比。一个过滤器也有自己的生命周期,包括:初始化、

9、处理请求和响应、销毁等阶段。 过滤器的生命周期,一定要实现javax.servlet包的Filter接口的三个方法init()、 doFilter()、destroy(),空实现也行。 (1) 启动服务器时加载过滤器的实例,并调用init()方法来初始化实例; (2) 每一次请求时都只调用方法doFilter()进行处理; (3) 停止服务器时调用destroy()方法,销毁实例。,6.5 实现简单的过滤器,第6章,6.5.1 开发和配置过滤器的步骤 1首先创建一个过滤器实现类,创建步骤如下: (1)实现javax.servlet.Filter接口。 (2)初始化:实现init方法,读取过滤器

10、的初始化参数。 (3)过滤:实现doFilter方法,完成对请求或响应的过滤。 (4)转发或阻塞:调用FilterChain接口对象的doFilter方法,向后续的过滤器传递请求或响应。 (5)析构:destroy方法销毁过滤器,释放过滤器占用的资源。 2配置 Servlet 过滤器(在web.xml中配置),6.5 实现简单的过滤器,第6章,6.5.1 开发和配置过滤器的步骤 1首先创建一个过滤器实现类,创建步骤如下: (1)实现javax.servlet.Filter接口。 (2)初始化:实现init方法,读取过滤器的初始化参数。 (3)过滤:实现doFilter方法,完成对请求或响应的过滤。 (4)转发或阻塞:调用FilterChain接口对象的doFilter方法,向后续的过滤器传递请求或响应。 (5)析构:destroy方法销毁过滤器,释放过滤器占用的资源。,E-mail:,网址:http:/,地址:大连市软件园路80号,大连理工大学出版社,谢谢观看,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号