全套Servlet培训教程.ppt
- 文档编号:1427569
- 上传时间:2022-10-22
- 格式:PPT
- 页数:45
- 大小:593KB
全套Servlet培训教程.ppt
《全套Servlet培训教程.ppt》由会员分享,可在线阅读,更多相关《全套Servlet培训教程.ppt(45页珍藏版)》请在冰豆网上搜索。
基于Java的Web编程技术,第六章Servlet,上章回顾,了解代理事件模型在JavaBean中访问数据库,我们的目标,了解Servlet体系结构掌握请求和响应,简介-1,Java编程中一个最激动人心的最新趋势是服务器端Java应用程序的兴起。
Java这种面向对象的通用编程语言最初旨在用于小型嵌入设备,而后被认为是一种用于以Applet形式开发客户端Web内容的语言,如今Java已是一种非常适合服务器端开发的语言,商家迅速认识到Java在服务器上的潜力。
简介-2,Applet是以Java语言开发的程序,它运行在客户端机器的浏览器上,这些Applet不连接到服务器。
在很多情况下需要访问服务器上的数据,而这无法通过Applet实现。
为了访问数据和执行服务器端的请求处理,必须使用另一个称为Servlet的应用程序。
Servlet是以Java编程语言开发的服务器端程序,它运行在Web服务器中,由于Servlet在服务器内运行,所以这些程序可用于扩展Web服务器的功能。
简介-3,客户端,Servlet,数据库,HTTP服务器,Servlet体系结构,简介-4,使用Servlet的优点是:
Servlet是持久性的。
Servlet只须由Web服务器加载一次即可维护请求之间的服务。
相比之下,每次向Web服务器发出请求时,Web服务器都必须加载和执行CGI脚本。
Servlet运行速度快。
由于只须加载一次,所以提供更佳的性能。
由于是用Java编写,所以Servlet可跨平台。
Servlet可扩展。
Java的所有优点都可以在Servlet中体现。
Servlet很安全。
访问Servlet的唯一途径是通过服务器。
Servlet可以与各种客户端一起使用。
6.1Servlet体系结构-1,Servlet是服务器端程序,运行在Web服务器上对客户端的请求做出响应。
Web服务器向Servlet发送请求,Servlet的输出结果返回至Web服务器,然后Web服务器将结果返回至Web浏览器,最后Web浏览器在屏幕上显示结果。
该过程称为“请求-响应”模型。
Web浏览器,Servlet,Web服务器,HTTP请求,HTTP响应,6.1Servlet体系结构-2,Servlet使用以下两个包中的类和接口:
javax.servletjavax.servlet.http包名以javax开头而不是java,表示ServletAPI是一个标准扩展。
javax.servlet包包含了可以支持通用、跨协议的Servlet的类。
javax.servlet.http包中的类增加了特定于HTTP的功能。
每个Servlet都必须实现javax.servlet.Servlet接口。
大部分Servlet通过扩展以下其中一个特殊类来实现这一接口:
javax.servlet.GenericServlet或javax.servlet.http.HttpServlet。
6.1Servlet体系结构-3,跨协议Servlet应该继承GenericServlet。
HTTPServlet应继承HttpServlet,而HttpServlet本身是GenericServlet的子类,但添加了特定于HTTP的功能。
Servlet接口只声明而不实现用于管理Servlet及其与客户端通信的方法。
6.1Servlet体系结构-4,Servlet,GenericServlet,HttpServlet,自定义Servlet,6.1.1常用接口和类-javax.servlet包,其中最常用的接口如下:
ServletRequest此接口用于将请求信息传送给Servlet。
在收到请求时,Servlet引擎会将关键的请求信息封装在实现ServletRequest接口的对象中,传递至Servlet的service()方法。
ServletResponse此接口提供服务器对客户端请求的响应的对象表示。
Servlet引擎会将实现ServletResponse接口的对象传递给Servlet的service()方法。
接着Servlet就可以使用此对象对客户端请求做出响应。
RequestDispatcher此接口定义一个用于接收客户端的请求并将其发送至任何资源的对象。
此接口还可用于封装Servlet。
RequestDispatcher对象用作资源的封装器,通过路径或名称指定。
资源可以是服务器上的Servlet、HTML文件或JSP文件。
6.1.1常用接口和类-javax.servlet包,其中最常用的接口如下:
Servlet这是每个Servlet都必须实现的接口,它定义必须由Servlet实现的方法。
ServletConfig此接口定义Servlet配置对象。
此对象由Servlet引擎用于将任何信息传递给Servlet,以便可初始化Servlet。
ServletConfig接口的其他详情将在本章后面讨论。
ServletContext此接口定义了一组方法,Servlet使用这些方法与Servlet引擎进行通信。
SingleThreadModel此接口确保每次Servlet只能处理一个请求。
6.1.1常用接口和类-javax.servlet包,其中最常用的类如下:
GenericServlet这是大部分非HTTPServlet扩展的类。
此类定义通知、跨协议的Servlet。
ServletInputStream这是提供输入流用于读取来自客户端请求的二进制数据的类。
此类包括方法readLine(),以此有效实现每次读取一行数据。
ServletOutputStream此类的运行方式与ServletInputStream相同,但此类提供输出流用于将二进制数据发送给客户端。
6.1.1常用接口和类-javax.servlet包,javax.servlet包还具有某些异常,它们是:
ServletException此异常是常规异常,由Servlet在执行过程中遇到困难时抛出。
UnavailableException此异常定义的是由Servlet抛出以表示Servlet永久或临时不可用的异常。
6.1.1常用接口和类-javax.servlet.http包,javax.servlet.http包中可用的接口包括:
HttpServletRequest此接口扩展ServletRequest接口并支持ServletResult接口的所有方法。
HttpServletRequest定义用于描述HTTP请求的方法。
实现HttpServletRequest接口的对象被传递给Servlet的service方法或任何do()方法。
HttpServletResponse此接口扩展ServletResponse并支持ServletResponse接口的所有方法。
HttpServletResponse接口提供服务器对客户端请求的响应的对象表示。
Servlet可以使用实现Servlet引擎传递的HttpServletResponse接口的对象。
此对象将被传递至Servlet的service()方法。
HttpSession此接口提供一种方法,用于在对Web站点的请求或访问超过一个页面时标识用户。
HttpSessionBindingListener在对象绑定至会话上或解除会话绑定时,此接口将通知对象。
6.1.1常用接口和类-javax.servlet.http包,javax.servlet.http包中常用的类包括:
CookieCookie类可以创建Cookie,Cookie存储了少量由Servlet发送至客户端的信息。
客户端可在稍后要访问以前访问过的网页时使用已存储的信息。
HttpServletHttpServlet类是最常用于扩展Servlet的类,这是因为很多Servlet应用程序都按HTTP协议运行。
此类支持HTTP功能以及Servlet类的方法,它是个抽象类。
它接收客户端的请求,并向客户端发送响应。
HttpSessionBindingEvent在对象绑定至会话上或解除会话绑定时,此类会将对象传递给实现HttpSessionBindingListener接口的会话。
6.1.2Servlet生命周期-1,Servlet是普通Java类,在需要时被创建,在不用时被破坏。
Servlet的创建和破坏均由Servlet容器自动处理,这是因为Servlet是在Servlet容器内运行。
Servlet容器可以在单个Java虚拟机中执行所有Servlet。
Servlet容器必须遵循下列生命周期:
创建和初始化Servlet(加载)处理客户端的服务调用破坏Servlet并对其进行垃圾收集这三个步骤对所有Servlet都通用。
Servlet容器创建Servlet实例时使用的是init()方法,而在破坏实例时使用的是destroy()方法。
6.1.2Servlet生命周期-2,服务器加载Servlet,服务器创建Servlet类的实例,调用Servlet实例的init()方法,收到请求,调用service()方法,service()方法处理请求并将输出结果返回客户端,Servlet等待下一个请求或由服务器卸载,Servlet在服务器调用destroy()方法后被卸载,6.1.2Servlet生命周期-3,初始化Servlet任何时候将Servlet加载至服务器,服务器都会调用Servlet的init()方法。
即使大部分Servlet在多线程服务器上运行,Servlet在初始化过程中也不会碰到并发问题。
init()方法在Servlet处理第一个请求之前调用,此方法用于执行Servlet初始化创建或加载Servlet在处理请求时使用的对象。
服务器调用Servlet的init()方法,向新Servlet提供任何有关其本身及其环境的信息。
覆盖init()方法是为了在Servlet中添加初始化的内容,覆盖init()方法时必须遵循下列规则:
如果发生初始化错误,致使Servlet不能处理客户端请求,则抛出UnavailableException请勿调用System.exit()方法ServletConfig对象向Servlet提供其初始化参数信息,这些参数与其他任何请求都不关联。
ServletConfig对象还有对ServletContext对象的引用,Servlet可以使用此对象调查其环境。
6.1.2Servlet生命周期-4,处理客户端的请求Servlet接受客户端的调用时,它将收到两个对象:
ServletRequest,用于封装客户端至服务器的通信。
ServletResponse,用于封装Servlet返回至客户端的通信。
HttpServlet接受客户端的调用时,与普通Servlet相似,它们是:
HttpServletRequestHttpServletResponseHttpServlet能够并发地为多个客户端服务。
在Servlet初始化之后,在调用init()方法时,Servlet容器收到的任何请求都将被转发至Servlet的service()方法。
根据正在接收的HTTP请求类型,HttpServlet类的service()方法可在细分为doGet()、doPost()、doDelete()、doOptions()、doPut()和doTrace()方法。
其中,doGet()和doPost()是两个常用于处理服务器的请求并生成响应的方法。
6.1.2Servlet生命周期-5,破坏Servlet要卸载Servlet时,服务器将调用Servlet的destroy()方法。
在destroy()方法中,Servlet应该释放任何已获得的资源。
destroy()方法还使Servlet有机会写出其未保存的高速缓存信息或任何在下次调用init()时应该读取的持久性信息。
6.2请求和响应-1,下面讨论表示客户端请求和Servlet响应的对象。
Servlet的两个包都具有请求和响应的接口和类。
javax.servlet包具有Serv
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全套 Servlet 培训 教程