JSP基础课件.ppt

上传人:小飞机 文档编号:6510421 上传时间:2023-11-07 格式:PPT 页数:26 大小:229.49KB
返回 下载 相关 举报
JSP基础课件.ppt_第1页
第1页 / 共26页
JSP基础课件.ppt_第2页
第2页 / 共26页
JSP基础课件.ppt_第3页
第3页 / 共26页
JSP基础课件.ppt_第4页
第4页 / 共26页
JSP基础课件.ppt_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《JSP基础课件.ppt》由会员分享,可在线阅读,更多相关《JSP基础课件.ppt(26页珍藏版)》请在三一办公上搜索。

1、2023/11/7,1,第9章 JSP与Servlet编程,教学目标教学重点教学过程,2023/11/7,2,教学目标,了解Servlet的优点与用途了解Servlet与JSP的区别 掌握Servlet的方法 了解Servlet的生命周期 了解和掌握Servlet的类和接口,2023/11/7,3,教学重点,Servlet与JSP的区别 Servlet的方法 Servlet的类和接口,2023/11/7,4,教学过程,Servlet概述 处理客户端提交的数据 JSP+Servlet编程实例,2023/11/7,5,9.1 Servlet概述,什么是Servlet Servlet的优点 Serv

2、let的用途 Servlet与JSP的区别 Servlet的方法 Servlet的生命周期 Servlet的类和接口状态代码,2023/11/7,6,什么是Servlet,Servlet是与JSP样在服务器端运行的Java应用程序的一种。Servlet与JSP或者CGI一样,当浏览器端有请求则将其结果传递给浏览器。文际上执行JSP文件的时候,首先JSP Container会将其转译为Servlet(*.java)文件,并自动编译解释执行。JSP中使用到的所有对象都将被转换为Servlet或者非Servlet的Java对象,然后被执行,所以执行JSP实际上与执行Servlet是一样的。从JSP的

3、角度去看的话,Servlet实际上是JSP被解释执行的中间过程,即JSP实际上是为了让Servlet的开发显得相对容易而采取的脚本语言形式。简单来说,Servlet就是运行在服务器端的应用程序,Servlet接收来自客户端的请求,将处理结果返回给客户端。,2023/11/7,7,Servlet的优点,功能强大。在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。执行效率高。在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际

4、执行时间。而在Servlet中,每个请求由一个次要的Java线程处理。而不需要反复启动。这也叫“一次加载多次使用”。在传统CGI中,如果有N个并发的进程对同一CGI程序发出请求,则该CGI程序的代码在内存中重复装载了N次;而对于Servlet,处理请求的是N个线程,只需加载一次Servlet类代码。从而可以提高处理速度。,2023/11/7,8,开发难度低。相对于传统的CGI,Servlet有很多例程,可以完成许多功能,如网络缓存、Cookies、还有会话跟踪,自动读取Http表头等功能。开发者在这些功能完备的例程的基础上,轻松地开发功能复杂的Web应用程序。可移植性好。Servlet是使用J

5、ava编写的,所以很好地继承了Java的跨平台性特点。由于ServletAPI的规范很完备,所以几乎所有的主流Web服务器,如Apache、MicrosoftIIS或者WebStar等,都直接或者通过插件支持Servlet。性能更强。Servlet比CGI有着更多的选择,比如缓冲以前的计算结果,保持数据库连接的活动等等。,2023/11/7,9,Servlet的用途,一个简单的Servlet可以处理使用HTML FORM在HTTPS上使用POST传递的数据,复杂的Servlet(可能还会使用RMI技术)可以用于实现定单输入和处理系统、生产及库存数据库以及一个可能的联机支付系统。一个Servle

6、t能并发处理多个请求;他们可以使用在诸如在线会议这样的同步请求支持系统。Servlet可以转送请求给其他的服务器和Servlet,按照任务类型或组织范围,可以允许被用来在几个服务器中划分逻辑上的服务器。Servlet编写者们可以定义彼此之间共同工作的激活代理,每个代理者是一个Servlet,而且代理者能够在它们之间传送数据。,2023/11/7,10,Servlet与JSP的区别,Servlet是一种在服务器端运行的Java程序,从某种意义上说,它就是服务器端的Applet。所以Servlet可以像Applet一样作为一种插件(Plugin)嵌入到Web Server中去,提供诸如HTTP、F

7、TP等协议服务甚至用户自已定制的协议服务。而JSP是继Servlet后Sun公司推出的新技术,它是以Servlet为基础开发的。Servlet与JSP相比有以下几点区别:编程方式不同Servlet必须在编译以后才能执行 运行速度不同,2023/11/7,11,Servlet的方法,Servlet一般从Javax包的HttpServlet类扩展而来,在HttpServlet中加入了一些附加的方法,这些方法可以被协助处理HTTP基本请求的HttpServlet类中的方法service自动地调用。这些方法有:doGet、doPost、doPut、doDelete、doHead、doOptions、d

8、oTrace。,2023/11/7,12,doGet用来处理HTTP的GET请求。这个GET操作仅仅允许客户从HTTP server上取得GET资源。重载此方法的用户自动允许支持方法HEAD。这个GET操作被认为是安全的,没有任何的负面影响,对用户来说是很可靠的。doGet方法格式为:protected void doGet(HttpServletResquest request,HttpServletResponse response)throws ServletException,IOException;,2023/11/7,13,doPost用来处理HTTP的POST请求。这个POST操

9、作包含了在必须通过此Servlet执行的请求中的数据。由于它不能立即取得资源,所以对于那些涉及到安全性的用户来说,通过POST请求操作会有一些副作用。doPost方法格式为:protected void doPost(HttpServletResquest request,HttpServletResponse response)throws ServletException,IOException;,2023/11/7,14,doPut用来处理HTTP的PUT请求。此PUT操作模拟通过FTP发送一个文件。对于那些涉及到安全性的用户来说,通过PUT请求操作也会有一些副作用。doPut方法格式为

10、:protected void doPut(HttpServletResquest request,HttpServletResponse response)throws ServletException,IOException;,2023/11/7,15,doDelete用来处理HTTP的DELETE请求。此操作允许客户端请求一个从server移出的URL。对于那些涉及到安全性的用户来说,通过DELETE请求操作会有一些副作用。doDelete方法格式为:protected void doDelete(HttpServletResquest request,HttpServletRespon

11、se response)throws ServletException,IOException;,2023/11/7,16,doHead用来处理HTTP的HEAD请求。缺省地,它会在无条件的GET方法执行时运行,但是不返回任何数据到客户端。只返回包含内容信息的长度的header。由于用到GET操作,此方法应该是很安全的(没有副作用)也是可重复使用的。doHead方法格式为:protected void doHead(HttpServletResquest request,HttpServletResponse response)throws ServletException,IOExcepti

12、on;,2023/11/7,17,doOptions用来处理HTTP的OPTIONS请求。此操作自动地决定支持什么HTTP方法。比如说,如果读者创建HttpServlet的子类并重载方法doGet,然后方法doOptions会返回下面的header:GET、HEAD、TRACE和OPTIONS。doOptions方法格式为:protected void doOptions(HttpServletResquest request,HttpServletResponse response)throws ServletException,IOException;,2023/11/7,18,doTra

13、ce用来处理HTTP的TRACE请求。此方法的缺省实现产生一个包含所有在trace请求中的header的信息的应答(response)。在开发Servlet时,多数情况下需要重载此方法。doTrace方法格式为:protected void doTrace(HttpServletResquest request,HttpServletResponse response)throws ServletException,IOException;,2023/11/7,19,Servlet的生命周期,Servlet的生命周期定义了一个Servlet如何被加载、初始化,以及它怎样接收请求、响应请求、提供

14、服务。Servlet的生命周期如图。,2023/11/7,20,Servlet的初始化 init方法被调用于初始化JSP/Servlet,其格式为:public void init(ServletConfig config)throws ServletExceptionsuper.init();在初始化过程中,Servlet应当准备好它要安排的一些资源,以便这个Servlet能够接收请求,做到这些可以不用考虑多线程,因为在Servlet初始化时只能是单进程的。一旦初始化方法完成,Servlet就能接收客户端的请求。,2023/11/7,21,Servlet的执行Service方法可以用于实现事

15、务逻辑,是处理请求的地方。在服务器装载初始化Servlet后,Servlet就能够处理客户端的请求,可以用service方法来实现。每个客户端请求有它自己service方法。这些方法接收客户端请求,并且发回相应的响应。Servlet能同时运行多个service。这样,service方法可以按一个thread-safe样式编写。如service方法更新Servlet对象中的一个字段field,这个字段是可以同时存取的。假如某个服务器不能同时并发运行service方法,也可以用SingleThreadModel接口。这个接口保证不会有两个以上的线程(threads)并发运行。在Servlet执行期

16、间其最多的应用是处理客户端的请求并产生一个网页。,2023/11/7,22,Servlet的结束 当服务器卸载一个Servlet,它将调用Servlet的destroy方法。这个destroy方法是与初始化方法相反,同时从内存中释放Servlet。Destroy的格式为:public void destroy()用户调用destroy实际上不会卸载Servlet,只有Servlet引擎才可以实现此功能。,2023/11/7,23,Servlet的类和接口,Servlet的相关类和接口有很多,都放在包javax.Servlet和包javax.Servlet.http中。下面就其中主要的几个类和接

17、口进行介绍。ServletInputStream类是一个抽象类,它提供了从客户机请求读取二进制数据的一个输入流,对于一些协议,例如HTTP、POST和PUT,可以使用ServletInputStream对象读取和发送数据。ServletOutputStream类是一个抽象类,它提供了一个输出流,用于向客户端发送数据。ServletConfig接口定义了一个Servlet配置对象,Servlet引擎可以用来传递信息给Servlet以便初始化Servlet。HttpServletRequest接口扩展了javax.Servlet.ServletRequest接口。用于提供更多的功能给HTTP Se

18、rvlet。Servlet引擎实现该接口,创建HTTPServletRequest对象,将来自客户浏览器的信息传递给HttpServlet的service方法。,2023/11/7,24,状态代码,在Web服务器应答中,应答中可能包括状态代码处理。应答信息中的状态代码中,可以提取需要的状态信息,从而做出相应的处理。Servlet可以利用这些状态代码来实现许多功能。例如,可以把用户重定向到另一个网站;可以告诉用户必须提供密码才能访问文档等等。常见的状态代码以及它们对应的状态信息和含义可以参看书中相应章节。,2023/11/7,25,9.2 处理客户端提交的数据,客户端向服务器端提交数据的方法一般

19、有GET和POST两种。相应的,覆盖doGet方法和doPost方法就能够处理其中的信息。,2023/11/7,26,9.3 JSP+Servlet编程实例,JSP和Servlet结合的体系结构,是一种把JSP与Servlet联合使用来实现动态内容服务的方法。它吸取了两种技术各自的突出优点,用JSP生成表达层的内容,让Servlet完成深层次的处理任务,Servlet充当控制者的角色,负责管理对请求的处理,创建JSP页需要使用的bean和对象,同时根据用户的动作决定把那个JSP页传给请求者。在JSP页内没有处理逻辑;它仅负责检索原先由Servlet创建的对象或beans,从Servlet中提取动态内容插入静态模板,清晰地分离了表达和内容。项目越复杂,使用该体系结构的好处就越大。具体的例子可以参看书中相应章节。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号