《jsp程序设计》教学课件(3)

上传人:m**** 文档编号:53694861 上传时间:2018-09-04 格式:PPT 页数:43 大小:18.89MB
返回 下载 相关 举报
《jsp程序设计》教学课件(3)_第1页
第1页 / 共43页
《jsp程序设计》教学课件(3)_第2页
第2页 / 共43页
《jsp程序设计》教学课件(3)_第3页
第3页 / 共43页
《jsp程序设计》教学课件(3)_第4页
第4页 / 共43页
《jsp程序设计》教学课件(3)_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《《jsp程序设计》教学课件(3)》由会员分享,可在线阅读,更多相关《《jsp程序设计》教学课件(3)(43页珍藏版)》请在金锄头文库上搜索。

1、第7章Servlet编程技术,Servlet技术是目前流行的开发模式MVC的基础,而JSP技术就是基于Java Servlet的。因此,要对JSP有更深入的了解,就需要掌握Servlet。,7.1Servlet概述,Servlet已经出现了很长时间,目前已经是一种非常成熟的技术。JSP与Servlet结合使用非常有效。,7.1.1Servlet简介,Servlet是与平台无关的服务器端小程序,从本质上讲,Servlet是一个Java类,除图形界面以外,Java语言能实现的功能,Servlet基本上都能实现。 Servlet主要用于处理客户端传来的HTTP请求,并将处理结果以HTTP形式返回客户

2、端,从而生成动态网页。Servlet和客户端协作是通过请求响应模式来进行处理,如下图所示。,Servlet是Java技术对CGI(通用网关接口)编程的回应,但与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,并具有更好的可移植性,更节省投资。,Servlet的主要优点有以下几点: (1)可移植性。Servlet是利用Java语言开发的,因此延续Java在跨平台上的表现,不论Server的操作系统是Windows、Linux、FreeBSD或AIX等,都能够很好地执行。当程序员在开发Applet 时,“可移植性(portability)

3、”是比较难以解决的问题。例如,开发Applet时,为了配合客户端的平台(即浏览器版本的不同,plug-in的JDK版本也不尽相同),达到满足真正“跨平台”的目的时,需要花费大量时间来修改程序。但即使如此,往往也只能满足大部分用户,而其他少数用户若要执行Applet,仍须先安装合适的JRE (Java runtime environment)。但是如果使用Servlet就比较简单了,主要原因在于Servlet 是在Server 端执行的。 (2)强大的功能。Servlet能够完全发挥Java API 的威力,包括网络和URL 存取、多线程(multithread)、影像处理、RMI(remote

4、 method invocation)、分布式服务器组件(enterprise Java bean)、对象序列化(object serialization) 等。 (3)高性能。Servlet 在加载执行之后,其对象实体(instance)通常会一直停留在Server的内存中,若有请求(request)发生时,服务器再调用Servlet 来服务,若收到相同服务的请求时,Servlet会利用不同的线程来处理,不像CGI程序必须产生许多进程(process)来处理数据。因此在性能的表现上,Servlet大大超越CGI程序。 而且Servlet在执行时,不是一直停留在内存中,服务器会自动将停留时间过

5、长、一直没有执行的Servlet从内存中移除,这个过程用户也可以自行编写程序来控制。其停留时间的长短通常和选用的服务器有关。 (4)安全性高。Servlet也有类型检查(type checking)的特性,并且由于Java的垃圾收集(garbage collection)与没有指针的设计,使得Servlet 避免了内存管理的问题。由于在Java的异常处理(exception handling)机制下,Servlet能够安全地处理各种错误,不会因为发生逻辑错误而导致整体服务器系统的毁灭。,由于Servlet的种种优点,Java Servlet有着十分广泛的应用。它不单单能简单地处理客户端的请求,

6、借助Java的强大的功能,使用Servlet还可以实现大量的服务器端的管理维护功能,以及各种特殊的任务,具体有以下几方面: (1)创建并返回一个包含基于客户端请求的动态内容的HTML页面。 (2)创建可嵌入到现有HTML页面中的HTML代码片断。 (3)与其他服务器资源(包括数据库或基于Java的应用程序)进行通信。 (4)对特殊的处理采用MIME类型过滤数据。 (5)当在允许以单连接方式传送数据的情况下,在浏览器上打开服务器至Applet的新连接,并将该连接保持在打开状态。在客户机和服务器简单、高效地执行会话的情况下,Applet也可以启动客户浏览器和服务器之间的连接。可以通过定制协议或标准

7、进行通信。,7.1.2Servlet与JSP的关系,JSP和Servlet的关系十分密切。由于JSP是作为一种简化Servlet开发的替代方法出现的,所有JSP页面在执行时都被转换为Servlet并被编译成字节码文件,随后在Servlet容器中运行,因此人们往往误认为JSP是一种比Servlet优秀并可以完全替代Servlet的技术。首先,从技术角度上看,JSP和Servlet的功能很相似。另外,理论上JSP和Servlet也是可以相互替换的。但是,随着学习的深入和在具体项目中应用经验的增加,会发现不能这样简单地比较这两种技术,它们都有各自的优势和适应性。 JSP与Servlet之间的主要差异

8、在于,JSP提供了一套简单的标签,和HTML融合得比较好,即使不了解Servlet的用户也可以通过JSP创建动态网页。因此,很多对Java语言不太熟悉的用户会觉得JSP开发比较方便。JSP页面修改后可以立即看到效果,不需要手动编译,JSP引擎会自动完成这项工作;而Servlet需要编译、重新启动Servlet引擎。 在Web应用开发中,通常可以将Servlet用作控制器,用于处理请求,一旦Servlet完成了请求处理,即可将处理结果转交给JSP并呈现给用户。由于JSP的跨平台特性,JSP技术在Web应用开发领域中愈来愈受人们的青睐,而JSP、JavaBean和Servlet三者的有机结合则提供

9、了一种理想的Web应用解决方案。,7.1.3Servlet的生命周期,Servlet的生命周期定义了一个Servlet如何被加载、初始化,以及它怎样接收请求、响应请求、提供服务。Servlet部署在容器里,它的生命周期由容器管理。 Servlet的生命周期可以概括为以下几个阶段: 1.加载Servlet 2.初始化 3.处理客户请求 4.卸载Servlet,下面给出Servlet整个生命周期过程的UML时序图。,7.1.4常用的Servlet API,Java Servlet API是用于处理客户端与服务器之间请求和响应的一组Java编程接口,使用Servlet API编写Servlet时,不

10、必关心Servlet怎样被装载,Servlet运行的服务器环境是什么,或者用来传输数据的协议是什么等,只需使Servlet可以融合在不同的Web服务器中。Java Servlet API由两个软件包组成:一个是对应于HTTP的javax.servlet.http软件包,另一个则是不对应HTTP的javax.servlet通用软件包。使用Servlet进行基于HTTP协议的Web应用开发时,主要使用javax.servlet.http包中的类。Servlet中的API有很多,这里只介绍一些常用的接口和类,以便对Servlet框架有一个比较全面的了解。,7.1.4常用的Servlet API,1.

11、public interface Servlet 2.public abstract class GenericServlet implements Servlet,ServletConfig,java.io.Serializable 3.public abstract class HttpServlet extends GenericServlet implements java.io.Serializable 4.public interface ServletConfig 5.public class ServletException extends Exception 6.public

12、 class UnavailableException extends ServletException 7.public interface HttpServletRequest extends ServletRequest 8.public interface HttpServletResponse extends ServletResponse 9.public interface HttpSession 10.public interface ServletContext 11.public interface RequestDispatcher,7.2开发部署Servlet,虽然前面

13、已经做了很多关于Servlet的知识讲解,但是要成功运行Servlet还需要对其进行正确的配置。首先要编写Servlet类文件,然后将类文件编译成字节码文件,并将字节码文件复制到指定位置,此外还要在Web部署描述符文件web.xml中添加相应的配置信息。完成这些工作后,即可通过客户端直接请求Servlet,或者在JSP页调用Servlet。下面开发并部署一个非常简单的Servlet实例,运行该Servlet实例后,浏览器中将显示“Hello,Servlet World!”字符串。,7.2.1创建Servlet,Servlet实际上就是一个从HttpServlet继承的类,创建Servlet就是

14、编写Java源文件并定义一个类。要创建一个Servlet需要完成以下四个方面的工作: (1)声明一个类,该类继承自HttpServlet类。 (2)重载HttpServlet类的部分方法,如service()、doGet()或doPost()方法。 (3)通过HttpServletRequest对象检索表单参数或URL参数。HttpServletRequest对象以名称/值形式存储表单参数或URL参数,可以通过该对象的getParameter()、getParameterNames()以及getParameterValues()方法来检索这些参数。 (4)通过HttpServletRespon

15、se对象生成HTTP响应结果。HttpServletResponse对象有一个getWriter()方法,调用该方法可以返回一个PrintWriter对象。利用PrintWriter对象的print()或println()方法可以向客户端发送字符串数据流。,7.2.2配置Servlet,对于每个Web应用,都可以创建一个部署描述符文件web.xml,该文件应存放在WEB-INF目录中。在web.xml中,顶层元素是,所有子元素都必须包含在和之间。部署Servlet需要在web.xml文件中添加两个元素:元素和元素。其中,元素是用来定义Servlet的,而元素则是为Servlet定义映射路径的。

16、 配置web.xml的过程如下: (1)在WEB-INF文件夹中新建web.xml文件。 (2)在web.xml文件中添加如下配置代码:,7.2.3Servlet的运行,在配置环境变量后,需要重新启动Tomcat服务器,然后在浏览器中输入“http:/localhost:8080/useServ/FirstServlet”。,7.3Servlet调用,创建并部署一个Servlet后,就可以在HTML页面、JSP页面或另一个Servlet中调用它了。,7.3.1Servlet调用方式,Servlet的调用方式主要有以下几种: 1.通过表单提交调用 2.通过超链接调用 3.通过sendRedire

17、ct()方法重定向到Servlet 4.使用RequestDispatcher对象,7.3.2Servlet与HTML的交互,当把HTML表单元素的action属性设置为一个Servlet时,在该Servlet中就可以通过调用HttpServletRequest对象的getParameter()方法来获取提交的数据了。当调用getParameter()方法时,应该将表单控件的名称作为参数传递给该方法。不论表单元素的method属性是get还是post,对请求的处理方法是一样的。若一个表单变量可能对应多个值,可以使用getParameterValues()方法来代替getParameter()方

18、法。 在实际应用中,Servlet可能只会用到那些已知名称的表单变量,但在调试环境中,获得完整的表单变量名往往非常有用,通过调用getParamerterNames()方法可以很容易地达到这个目的。getParamerterNames()方法返回的是一个包含表单变量名称的枚举变量,将其中的每一项作为参数来调用getParameter()方法,即可获得相应表单变量的值。 在Servlet中,既可以处理GET请求,又可以处理POST请求。只需要在doPost()方法中调用doGet()方法,或者重载service()方法并通过service()方法来调用doGet()、doPost()、doHead()等方法即可。,

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

当前位置:首页 > IT计算机/网络 > Java

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