jsp动态网页编程教学课件作者王丽菊第7章

上传人:E**** 文档编号:102545496 上传时间:2019-10-03 格式:PPT 页数:38 大小:409KB
返回 下载 相关 举报
jsp动态网页编程教学课件作者王丽菊第7章_第1页
第1页 / 共38页
jsp动态网页编程教学课件作者王丽菊第7章_第2页
第2页 / 共38页
jsp动态网页编程教学课件作者王丽菊第7章_第3页
第3页 / 共38页
jsp动态网页编程教学课件作者王丽菊第7章_第4页
第4页 / 共38页
jsp动态网页编程教学课件作者王丽菊第7章_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《jsp动态网页编程教学课件作者王丽菊第7章》由会员分享,可在线阅读,更多相关《jsp动态网页编程教学课件作者王丽菊第7章(38页珍藏版)》请在金锄头文库上搜索。

1、第7章 JSP与Servlet,7.1 Servlet概述 7.2 Servlet与JSP的关系 7.3 Servlet的常用接口类 7.4 Servlet的生命周期 7.5 Servlet应用案例 7.6 Servlet与JSP的交互 7.7 JSP开发网站的两种模式,7.1 Servlet概述,Servlet是服务器端的Java小程序,通常被称为服务器小应用程序,是运行在服务器端的应用程序。Servlet接受来自客户端的请求,并把处理的结果以HTML的形式返回,在客户端形成动态网页。 Servlet可以被认为是服务器端的applet,Servlet被Web服务器加载和执行,就如同apple

2、t被浏览器加载和执行一样。Servlet从客户端(通过Web服务器)接收请求,执行某种作业,然后返回结果。如图7-1所示,使用Servlet的基本流程如下。,下一页,返回,7.1 Servlet概述,(1)客户端通过HTTP提出请求. (2) Web服务器接收该请求并将其发给Servlet。如果这个Servlet尚未被加载,Web服务器将把它加载到Java虚拟机并且执行它。 (3) Servlet将接收该HTTP请求并执行某种处理。 (4 ) Servlet将向Web服务器返回应答。 (5) Web服务器将从Servlet收到的应答发送给客户端。,上一页,下一页,返回,7.1 Servlet概

3、述,由于Servlet在服务器上执行,通常与applet相关的安全性的问题并不需实现。要注意的是Web浏览器并不直接和 Servlet通信,Servlet是由Web服务器加载和执行的。而Servlet是用Java编写的,所以它们一开始就是平台无关的。这样,Java编写一次就可以在任何平台运行(write once run anywhere)的承诺就同样可以在服务器上实现了。Servlet还有一些CGI脚本所不具备的独特优点。 (1) Servlet是持久的。Servlet只需Web服务器加载一次,而A可以在不同请求之间保持服务(例如一次数据库连接)。与之相反,CGI脚本是短暂的、瞬态的。每一次

4、对CGI脚本的请求,都会使Web服务器加载并执行该脚本。一旦这个CGI脚本运行结束,它就会被从内存中清除,然后将结果返回到客户端。CGI脚本的每一次使用,都会造成程序初始化过程(例如连接数据库)的重复执行。,上一页,下一页,返回,7.1 Servlet概述,(2) Servlet是与平台无关的。如前所述,Servlet是用Java编写的,它自然也继承了Java的平台无关性。 (3) Servlet是可扩展的。由于Servlet是用Java编写的,它就具备了Java所能带来的所有优点。Java是健壮的、面向对象的编程语言,它很容易扩展以适应击求。Servlet自然也具备了这些特征。 (4) Se

5、rvlet是安全的。从外界调用一个Servlet的唯一方法就是通过Web服务器。这提供了高水平的安全性保障,无其是在Web服务器有防火墙保护的时候。 (5) Servlet可以在多种多样的客户机上使用。由于Servlet是用Java编写的,所以可以很方便地在HTML中使用它们,就像使用Applet一样。,上一页,返回,7.2 Servlet与JSP的关系,JSP是一种脚本语言,包装了Servlet系统的界面,简化了Servlet的使用难度,同时通过扩展JSP标签(TAG)提供了网页动态执行的能力。尽竹如此,JSP仍没有超出Servlet的范围,实际上执行JSP文件的时候,首先JSP容器会将其转

6、译为Servlet C *.java)文件,并自动编译解释执行。JSP中使用到的所有对象都将被转换为Servlet或者非Servlet的Java对象,然后被执行,所以执行JSP实际上与执行Servlet是一样的。从JSP的角度去看的话,Servlet实际上是JSP被解释执行的中间过程,即JSP实际上是为了让Servlet的开发显得相对容易而采取的脚本语言形式。简单来说,Servlet就是运行在服务器端的应用程序,Servlet接收来自客户端的清求,将处理结果返回给客户端。,下一页,返回,7.2 Servlet与JSP的关系,JSP第一次执行需要花较长的时间,而后JSP执行时,直接运行Java的

7、执行码,从而大大地提高了JSP的执行速度,这正是JSP的优点之一。 JSP与Servlet之间的主要差异在于,JSP提供了一套简单的标签,和HTML融合得比较好,可以使不了解Servlet的人做出动态网页来。对于Java语言不熟悉的人,会觉得JSP开发比较方便。JSP修改后可以立即看到结果,不需要乎工编译,JSP引擎会来做这些工作;而Servlet需要编译,重新启动Servlet引擎等一系列动作。但是在JSP中,HTML与程序代码混杂在一起,而Servlet却不是这样。因此,当编写的页面显示效果比较复杂时,首选是JSP,而在处理业务逻辑时,首选则是Servlet。,上一页,返回,7.3 Ser

8、vlet的常用接口类,在Servlet API中,最常用的是Servlet接口,所有Servlet都执行这个接口。Servlet可以直接执行Servlet接口,也可以通过扩展类执行。 1 .HttpServlet HttpServlet这个Servlet接口提供了Servlet与客户端进行通信的联系方法,通常编写的Servlet类,一般从Javax包的HttpServlet类继承而来,在HttpServlet中加入了一些附加的方法,这些方法AJ以陇助处理 HTTP基本请求,这些基本请求由HttpServlet类中的方法service()自动地调用。这些方法包括如下儿个。 (1)doG et()

9、用来处理HTTP的get、头部HEAD请求。,下一页,返回,7.3 Servlet的常用接口类,这个操作仅允许客户从HTTP服务器上取得(get)资源。重载此方法的用户自动允许支持方法HEAD。这个get操作被认为是安全的,对用户来说是很可靠的。比如,大多数的正规查询都没有副作用。打算改变存储数据的清求必须用其他的HTTP方法。这要求方法也必须是个安全的操作。方法doG et()的默认执行将返回一个HTTP的BAD_ REQUEST错误。 方法doGet()的格式: protected void doGet(HttpServletResquest request, HttpServletRes

10、ponse response) throws ServletException, IOException;,上一页,下一页,返回,7.3 Servlet的常用接口类,(2) doPost():用来处理 HTTP的post清求。 这个post操作包含了在必须通过此Servlet执行的清求中的数据。由于它不能立即取得资源,故对于那些涉及安全性的用户来说,通过post清求操作会有一些副作用。 方法doPost()的默认执行将返回一个HTTP的BAD REQUEST错误。当编写Servlet时,为了支持post操作必富士通须在子类HttpServlet中实现此方法。 方法doPost()的格式: pr

11、otected void doPost(HttpServletResquest request, HttpServletResponse response) throws ServletException, IOException;,上一页,下一页,返回,7.3 Servlet的常用接口类,(3) doPut():用来处理 HTTP的put请求。 此put操作模拟通过FTP发送一个文件。对于那些涉及安全性的用户来说,通过put请求操作也会有一些副作用。 方法doPut()的格式: protected void doPut(HttpServletResquest request, HttpSer

12、vletResponse response) throws ServletException, IOException; (4) doDeleteU:用来处理 HTTP的DELETE请求。 此操作允许客户端请求一个从server移出的URL。对于那些涉及安全性的用户来说,通过DELETE请求操作会有一些副作用。,上一页,下一页,返回,7.3 Servlet的常用接口类,方法doDelete()的默认执行将返回一个HTTP的BAD_ REQUEST错误。当编写Servlet时,为了支持DELETE操作,必须在子类HttpServlet中实现此方法。 方法doDelete()的格式: protec

13、ted void doDelete (HttpServletResquest request, HttpServletResponse response) throws ServletException,IOException; (5) doHead():用来处理 HTTP的head请求。 默认的,它会在无条件的get方法执行时期运行,但是不返回任何数据到客户端。只返回包含内容信息的长度的header。由于用到get操作,此方法是很安全的(没有副作用)也是可重复使用的。此方法的默认实现自动地处理了HTTP的head操作并且不需要通过一个子类实现。,上一页,下一页,返回,7.3 Servlet的

14、常用接口类,方法doHead()的格式: protected void doHead (HttpServletResquest request, HttpServletResponse response) throws ServletException, IOException; (6) doOptions用来处理 HTTP的OPTION S清求。 此操作自动地决定支持什么HTTP方法。比如说,如果一个Servlet的作者创建HttpServlet的子类并重载方法doG etU,然后方法doOptions()会返回下面的header: Allow: GET, HEAD TRACE OPTION

15、S。 方法doOptions()的格式: protected void doOptions (HttpServletResquest request, HttpServletResponse response) throws ServletException, IOException;,上一页,下一页,返回,7.3 Servlet的常用接口类,(7) doTrace()用来处理 HTTP的TRACE请求。 此方法的默认执行产生一个包含所有在TRACE请求中的header的信息的应答(response)。 在开发Servlet时,多数情况下需要重载此方法。 方法doTrac e()的格式: pr

16、otected void doTrace (HttpServletResquest request, HttpServletResponse response) throws ServletException, IOException; 注:在开发以HTTP为基础的Servlet中,Servlet开发者关心方法doGet()和方法doPost()即可。,上一页,下一页,返回,7.3 Servlet的常用接口类,2. HttpServletRequest HttpServletRequest被传到service()方法用来提供客户的请求信息,HttpServletRequest接口可以获取由客户端传送的阐述名称、获取客户端正在使用的通信协议、产生请求并且接收请求的远端主机名和IP地址等信息。 HttpServletRequest接口提供获取数据流Servlet, ServletlnputStream方法,这些数据是客户端引用的使用HTTP post不II put方法递交的。一个ServletRequest的子类可以让Servlet获取更多的防议特性数据。,上一页,下一页,返回,7.3

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

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

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