JSP应用开发教程 教学课件 ppt 作者 温超 第7章 Servlet编程

上传人:E**** 文档编号:89191225 上传时间:2019-05-21 格式:PPT 页数:45 大小:1.27MB
返回 下载 相关 举报
JSP应用开发教程 教学课件 ppt 作者 温超 第7章 Servlet编程_第1页
第1页 / 共45页
JSP应用开发教程 教学课件 ppt 作者 温超 第7章 Servlet编程_第2页
第2页 / 共45页
JSP应用开发教程 教学课件 ppt 作者 温超 第7章 Servlet编程_第3页
第3页 / 共45页
JSP应用开发教程 教学课件 ppt 作者 温超 第7章 Servlet编程_第4页
第4页 / 共45页
JSP应用开发教程 教学课件 ppt 作者 温超 第7章 Servlet编程_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《JSP应用开发教程 教学课件 ppt 作者 温超 第7章 Servlet编程》由会员分享,可在线阅读,更多相关《JSP应用开发教程 教学课件 ppt 作者 温超 第7章 Servlet编程(45页珍藏版)》请在金锄头文库上搜索。

1、第七章 Servlet 编程,目标要求:了解servlet的工作原理,掌握并熟练servlet 的 编程和设计过程。 重点内容:1.处理客户端输入 2.获取配置信息 3.发送非HTML文档等 4.掌握会话管理 5.Servlet上下文对象,7.1.1 Servlet概述 Servlet 是Java平台在服务器端实现Web应用程序的主要技术,为Java平台的Web应用程序提供了访问服务器端应用程序的接口。,7.1 认识Servlet,Servlet与传统Java 应用程序和工作在浏览器中的Applet的区别。 (1)相对于传统Java应用程序,Servlet运行于服务器端,不是从命令行启动的,而

2、是由包含Java 虚拟机的Web 服务器进行加载。 (2)相对于Applet,Servlet工作于服务器端,主要负责处理Web客户端对服务器端的访问请求,因此Servlet没有图形客户端。,7.1.2 Servlet工作原理 Servlet基本工作流程: (1)客户机通过浏览器请求应用服务器中的Servlet。 (2)应用服务器上的Web容器实例化被请求的Servlet,并为Servlet进程创建线程。,(3)Web容器将请求信息发送到Servlet。 (4)Servlet创建一个响应,并将其返回到Web容器。 (5)Web容器将响应发回客户机。 (6)服务器关闭或Servlet空闲时间超过一

3、定限度时,调用destory()方法退出。,7.1.3 Servlet编程接口 Java Servlet API由两个包组成: (1)javax.servlet包含了支持协议无关的Servlet的类和接口; (2)javax.servlet.http包括了对HTTP协议的特别支持的接口和类。,以HttpServlet接口类为中心与Servlet编程密切相关的7个接口 1.HttpServletRequest 2.HttpServletResponse 3.ServletConfig 4.ServletContext 5.ServletException 6.HttpSession 7.Requ

4、estDispatcher,编写响应HTTP请求的Servletde 的两个步骤。 (1).创建一个扩展了javax.servlet.http.HttpServlet接口的Servlet类。 (2).重写doGet()或doPost()方法实现对HTTP请求信息的动态响应。,7.2 Servlet设计方法,HTTP1.1支持7种请求方法:GET、POST、HEAD、OPTIONS、PUT、DELETE和TRACE。 其中doGet()和doPost()方法都有两个参数:HttpServletRequest 和HttpServletResponse类型。,表单数据的提交方法有两种:Post方法和

5、Get方法. 注意:变量的名称是大小写敏感的。当请求的变量不存在时,将会返回一个空字符串。 设计“login.html”文件完成如图7-6所示网页,代码如实例7-3所示。(见教科书),7.3 处理客户端输入,图7-6 login.html完成效果,Request的setCharacterEncoding()方法确保参数信息以汉字编码方式提取, response 的setContentType()方法确保汉字信息的正确编码方式显示。,非HTML格式的文档包括Adobe PDF、Microsoft Word和Microsoft Excel等。用Servlet分别打开PDF文档、 Microsoft

6、 Word文档、 Excel文档、需要对response对象进行设置,7.4发送非HTML文档,打开PDF,Word,Excel文档的代码分别如下: response.setContentType(“application/pdf “); response.setContentType(“application /msword ”); response.setContentType(“application/vnd. ms-excel “); 具体方法及代码如实例7-5(见教科书),在Servlet中要得到ServletConfig对象有两种方法: 1.在init()方法中获取 2.通过get

7、ServletConfig()方法直接获取。,7.5获取Servlet配置参数,7.5.1 在init()方法中获得ServletConfig对象 使用初始化参数传递文件位置的实现方法,如实例7-6(见教科书) 程序7-6通过重载init(ServletConfig config)获取ServletConfig对象,调用ServletConfig对象的getInitParameter()方法来获得servlet的配置参数。,7.5.2 通过getServletConfig()方法直接获取ServletConfig对象 通过调用Servlet类的getServletConfig()方法也能获得S

8、ervletConfig对象。如实例7-8(见教科书) 与GetConfigServlet相关的初始化配置信息同样保存在web.xml中,如实例7-9所示。,/实例7-9 GetConfigServlet com.servlet.GetConfigServlet Path C: ,从特定客户端到服务器的一系列请求称为会话 唯一标识每一个客户会话:通过为每一个客户分配一个某种标识,并将这些标识保存在客户端上,以实现对每个客户会话的唯一标识。 常见会话跟踪技术有:Cookie、URL重写和隐藏表单域。,7.6会话管理,7.6.1使用Cookie保存会话状态 Cookie是一小块可以嵌入到HTTP请

9、求和响应中的数据。 使用cookie实现会话状态保存的基本方法如实例7-10所示。 (见教科书),getCookies()方法可以返回当前请求中的Cookie对象的一个数组。利用Cookie对象的getValue()、getName()等方法显示Cookie的值和名字 实例7-10的结果如图7-12所示。 图7-12 使用cookie记录页面访问次数,7.6.2 使用URL重写保存会话状态 URL的特点:具有携带参数的能力 URL重写的基本使用方法: URL重写通过在URL地址后面增加一个包含会话信息的字符串来记录会话信息如实例7-11(见教科书),7.6.3 使用HttpSession对象保

10、存会话状态 使用HttpSession接口进行回会话状态跟踪的基本步骤如下: (1)获取会话对象。 (2)对会话对象进行读或写。 (3)手工终止会话,或者等待会话对象自动终止。 注意:每个会话对象都有一定的生存周期,超过这个周期,容器将自动将会话对象中止。,编程中常用的HttpSession接口方法如下: isNew() getId() setAttribute() getAttribute() setMaxInactiveInterval()。 invalidate()。 HttpSession接口的基本使用方法如实例7-13(见教科书),实例7-13的执行结果如图7-14所示 图7-14

11、使用HttpSession对象保存会话状态,在创建Web应用程序时,通过Servlet上下文实现以下功能。 (1)访问Web应用程序资源: (2)在Servlet上下文属性中保存Web应用程序信息: (3)获取初始化参数信息 (4)提供日志支持: 上下文对象在Servlet中的使用方法如实例7-14所示。,7.7Servlet上下文对象,显示存储在上下文中的Level属性信息的方法 1、AdminServlet的doGet()方法调用getServletConfig()获取ServletConfig对象, 2、调用ServletConfig对象的getServletContext()方法获取应

12、用的上下文对象ServletContext, 3、调用ServletContext对象的getAttribute()方法进行显示,实例7-14的执行结果如图7-15所示, 图7-14 水位输入页面,RequestDispatcher封装了到同一Web应用内的另外一个资源的应用。可以通过调用RequestDispatcher的forword()方法将请求传递到其他资源。 利用RequestDispatcher对象来实现Servlet间的协作。创建登陆页面如实例7-16,7.8 Servlet间协作,/实例7-16 登录页面 欢迎登陆系统 ,用户名: 密码: ,Filter主要用在以下几个方面:

13、(1)访问特定资源(Web页、JSP页、Servlet等)时的身份验证。 (2)访问资源的记录跟踪。 (3)访问资源的转换。,7.9 Servlet Filter,一个Filter必须实现javax.Servlet.Filter接口,即实现下面的三个方法。 (1)doFilter(ServletRequest,ServletResponse, FilterChain):用来实现过滤行为的方法。引入的FilterChain对象提供了后续Filter所要调用的信息。,(2)init(FilterConfig):由容器所调用的Filter初始化方法。容器确保在第一次调用doFilter()方法前调用

14、此方法,一般用来获取在Web.xml文件中指定的初始化参数。 (3)destroy():容器在破坏Filter实例前,doFilter()中的所有活动都被该实例终止后, 调用该方法。,实现ServletFilter接口必须实现接口中的三个方法:init()、destroy()和doFilter(),具体程序段如实例7-21所示。,/实例7-21 IPFilter com.servlet.IPFilter IPFilter HelloServlet ,Servlet作为J2EE三大组件技术之一,在J2EE编程开发中具有重要的地位,而且是后面学习JSP编程的基础。本章系统介绍了Java Servl

15、et的基本原理与技术,以及相关的类与方法,并以几个实例来引导学生练习Servlet的编程。,本章小结,本章的重点是理解Servlet的基本概念、工作原理,能掌握并熟练运用Servlet编程的基本技能包括处理客户端输入、获取配置信息、发送非HTML文档等,掌握会话管理、Servlet间协同、Servlet上下文等高级编程技巧。,1.选择题 (1)下面的方法中哪一个不是service()方法用来处理客户端请求的方法? A.doGet() B.doPost() C.doPush() D.doPut(),习题,(2)下面的方法中哪一个不是创建ServletFilter类型是必须重写的? A.init(

16、) B.toString() C.doFilter() D.destory() (3)下面关于HttpSession对象的说法哪一个是正确的? A.HttpSession类型的对象需要开发者自行创建。 B.HttpSession对象中可以保存多个标识名相同的对象。 C.HttpSession对象可使用request对象获得。 D.HttpSession对象被同一个Web容器中的所有Servlet对象共享。,2.填空题 (1)Servlet部署在应用服务器的 中。 (2)Servlet由 装入。一个Servlet在同一时刻只有一个实例,并且它在Servlet的使用期间将一直保留。当同时有多个请求发送到一个Servlet时,服务器将会为每个请求创建一个 来处理客户端的请求。,(3)所有的Ser

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

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

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