《【教学课件】第7章Servlet技术.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第7章Servlet技术.ppt(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、从零开始从零开始JSP动态网页制作基础培训教程动态网页制作基础培训教程 第第7 7章章 ServletServlet技术技术 编编程程1从零开始从零开始JSP动态网页制作基础培训教程动态网页制作基础培训教程 主要内容主要内容u1.1.ServletServlet简介简介 u2.2.AppletApplet、JSPJSP、JavaBeanJavaBean与与ServletServlet的关系的关系u3.Http3.Http与与ServletServlet u4 4.如何编写、部署一个简单的如何编写、部署一个简单的ServletServlet u5.Servlet5.Servlet的应用的应用 u
2、6.6.选择选择JSPJSP还是还是ServletServlet 2从零开始从零开始JSP动态网页制作基础培训教程动态网页制作基础培训教程 1.Servlet1.Servlet简介简介ServletServlet是使用是使用Java ServletJava Servlet应用程序设计接口应用程序设计接口编写的编写的JavaJava程序。它源于请求程序。它源于请求/响应模式,如它可以响应模式,如它可以接收来自客户端浏览器的接收来自客户端浏览器的HttpHttp请求,并产生一个响应,请求,并产生一个响应,然后将这个响应发送到客户端。然后将这个响应发送到客户端。3从零开始从零开始JSP动态网页制作基
3、础培训教程动态网页制作基础培训教程 总的说来,总的说来,ServletServlet有以下特点有以下特点:l可移植性可移植性因为因为ServletServlet使用使用JavaJava编写,编写,JavaJava具有跨平台性,具有跨平台性,所以所以ServletServlet的可移植性也很强,它可以在不同的操的可移植性也很强,它可以在不同的操作系统和应用服务器下移植运行。作系统和应用服务器下移植运行。l灵活灵活ServletServlet接口非常精练,易于掌握,同时,它又接口非常精练,易于掌握,同时,它又具有良好的扩展性。具有良好的扩展性。l效率高效率高当当JSPJSP网页第一次运行时,速度很
4、慢,这是因为网页第一次运行时,速度很慢,这是因为服务器要将这些服务器要将这些JSPJSP程序转换为程序转换为ServletServlet,而一旦转,而一旦转换完毕,编译后常驻在内存中,访问换完毕,编译后常驻在内存中,访问JSPJSP网页的速度网页的速度就很快了。就很快了。4从零开始从零开始JSP动态网页制作基础培训教程动态网页制作基础培训教程 2.Applet2.Applet、JSPJSP、JavaBeanJavaBean与与ServletServlet的关系的关系lAppletApplet和和ServletServlet程序中都没有程序中都没有main()main()方法,只有一方法,只有一
5、些特定的方法用于启动、执行和退出,不同的是,些特定的方法用于启动、执行和退出,不同的是,ServletServlet不提供用户界面,运行在服务器端,而不提供用户界面,运行在服务器端,而AppletApplet提供用户界面,运行于客户端。提供用户界面,运行于客户端。lServletServlet和和JavaBeanJavaBean一样,使用纯一样,使用纯JavaJava编写,不同的编写,不同的是,是,JavaBeanJavaBean不能独立运行,只是提供接口供不能独立运行,只是提供接口供JSPJSP等等访问,而访问,而ServletServlet可以独立运行。可以独立运行。5从零开始从零开始JS
6、P动态网页制作基础培训教程动态网页制作基础培训教程 l可以说可以说ServletServlet是是JSPJSP的前身,在的前身,在JSPJSP出现之前,出现之前,SunSun公司推出了公司推出了ServletServlet,但由于使用,但由于使用ServletServlet编写编写HTMLHTML脚本时,需要使用脚本时,需要使用printprint或者或者printlnprintln方法逐句打印方法逐句打印输出,这给开发人员带来很大麻烦,限制了输出,这给开发人员带来很大麻烦,限制了ServletServlet的广泛应用,由此,的广泛应用,由此,JSPJSP技术应运而生。技术应运而生。JSPJS
7、P网页是在网页是在HTMLHTML脚本中嵌入脚本中嵌入JavaJava代码,它从根本上代码,它从根本上改变了改变了ServletServlet的编程方式。的编程方式。lJSPJSP、JavaBeanJavaBean和和ServletServlet可以进行交流,例如:可以进行交流,例如:JSPJSP可以调用可以调用JavaBeanJavaBean,也可以调用,也可以调用ServletServlet,在,在ServletServlet中处理数据后,也可以通过中处理数据后,也可以通过JSPJSP网页显示出网页显示出来等。本章在来等。本章在7.37.3节中会介绍节中会介绍JSPJSP、JavaBean
8、JavaBean和和ServletServlet之间的交流,并给出典型的实例。之间的交流,并给出典型的实例。6从零开始从零开始JSP动态网页制作基础培训教程动态网页制作基础培训教程 3.Http3.Http与与ServletServlet虽然虽然ServletServlet技术没有局限于某个协议,但目前使技术没有局限于某个协议,但目前使用最多的还是支持用最多的还是支持HttpHttp协议的协议的ServletServlet,即,即Http Http ServletServlet。1 1、HttpHttp协议协议HttpHttp(HyperText Transfer ProtocolHyperT
9、ext Transfer Protocol)是)是“超文超文本传输协议本传输协议”的简称,是一种的简称,是一种InternetInternet客户客户/服务器服务器协议,为协议,为WebWeb上用于发布信息的主要协议。上用于发布信息的主要协议。HttpHttp协议定义了一个协议定义了一个“客户端浏览器客户端浏览器/Web/Web服务器服务器”结构的简单事务处理,下面是这个简单事务处理结构的简单事务处理,下面是这个简单事务处理的几个步骤:建立连接、发送请求、提供服务、发的几个步骤:建立连接、发送请求、提供服务、发送响应、关闭连接送响应、关闭连接 。7从零开始从零开始JSP动态网页制作基础培训教程
10、动态网页制作基础培训教程 HttpHttp协议支持协议支持GETGET、POSTPOST、PUTPUT、DELTEDELTE、OPTIONSOPTIONS等多种方法,与等多种方法,与HttpHttp协议的这些方法相比,协议的这些方法相比,Http Http ServletServlet也有类似的方法。也有类似的方法。8从零开始从零开始JSP动态网页制作基础培训教程动态网页制作基础培训教程 2 2、Http ServletHttp Servlet如何来处理如何来处理HttpHttp请求请求当一个当一个HttpHttp请求到来时,请求到来时,WebWeb服务器会将请求信息服务器会将请求信息封装在一
11、个类型为封装在一个类型为HttpServletRequestHttpServletRequest的对象中,的对象中,同时创建一个类型为同时创建一个类型为HttpServletResponseHttpServletResponse的对象,的对象,提供给提供给SevletSevlet来输出响应信息。然后服务器就会调来输出响应信息。然后服务器就会调用被请求的用被请求的doXXX()doXXX()方法,并将这两个对象作为参数方法,并将这两个对象作为参数传入。传入。service()service()方法是方法是ServletServlet的核心,每当客户浏览的核心,每当客户浏览器的器的HttpHttp
12、请求到来时,该请求到来时,该HttpServletHttpServlet对象的对象的serviceservice()()方法就要被自动调用,而不是直接调用方法就要被自动调用,而不是直接调用doXXX()doXXX()方方法。法。9从零开始从零开始JSP动态网页制作基础培训教程动态网页制作基础培训教程 在在HttpSevletHttpSevlet中已经存在中已经存在service()service()方法,其缺省方法,其缺省的功能是调用与的功能是调用与HttpHttp请求的方法相应的请求的方法相应的doXXX()doXXX()方法。方法。例如,例如,HttpHttp请求为请求为GETGET,则,
13、则service()service()方法缺省情况方法缺省情况下调用下调用doGET()doGET()方法。我们在编程时,只需要覆盖响方法。我们在编程时,只需要覆盖响应的应的doXXX()doXXX()方法即可,而不需要编写方法即可,而不需要编写service()service()方方法。法。事实上,我们编写事实上,我们编写Http ServletHttp Servlet,只需要对,只需要对HttpServletHttpServlet类进行扩展,一般也就覆盖(即重写)类进行扩展,一般也就覆盖(即重写)doGetdoGet()()和和doPUT()doPUT()方法来完成希望的功能,对其他的方法
14、方法来完成希望的功能,对其他的方法可以不必理会。可以不必理会。10从零开始从零开始JSP动态网页制作基础培训教程动态网页制作基础培训教程 1 1、编写、编写ServletServlet程序程序一个很简单的一个很简单的ServletServlet,SampleServlet1.javaSampleServlet1.java的的代码如见书。代码如见书。通常,通常,编写编写ServletServlet需要基本包:需要基本包:javax.servletjavax.servlet.*.*和和.*.*所有的所有的ServletServlet都必须实现都必须实现接口,通常我们将接口,通常我们将直接继承类直接
15、继承类HttpServletHttpServlet,HttpServletHttpServlet封装了编写封装了编写基于基于HttpHttp协议协议ServletServlet的大部分功能。如果编写的的大部分功能。如果编写的ServletServlet与与HttpHttp协议无关,那么就必须继承协议无关,那么就必须继承GenericServletGenericServlet类。类。4.4.如何编写、部署一个简单的如何编写、部署一个简单的ServletServlet11从零开始从零开始JSP动态网页制作基础培训教程动态网页制作基础培训教程 类中我们只编写一个方法类中我们只编写一个方法doGetd
16、oGet()(),这个方法是用来,这个方法是用来处理处理HttpHttp的的GETGET请求的。当客户端浏览器打开该请求的。当客户端浏览器打开该ServletServlet程序时,便会发出一个程序时,便会发出一个GETGET请求,自动调用请求,自动调用doGetdoGet()()方法。方法。程序中使用程序中使用printlnprintln()()方法将方法将HTMLHTML脚本打印输出,这脚本打印输出,这是编写是编写ServletServlet常用的方法。常用的方法。当客户端打开该当客户端打开该ServletServlet程序,向服务器发出程序,向服务器发出HttpHttp请请求时,程序就自动
17、调用求时,程序就自动调用doGetdoGet()()方法,向客户端浏览方法,向客户端浏览器中打印输出上述脚本,最后浏览器会解析器中打印输出上述脚本,最后浏览器会解析HTMLHTML脚脚本并将其显示出来。本并将其显示出来。12从零开始从零开始JSP动态网页制作基础培训教程动态网页制作基础培训教程 2 2、编译编译ServletServlet程序程序与一般的与一般的JavaJava程序一样,需要编译为程序一样,需要编译为classclass类文件。类文件。打开打开DOSDOS命令窗口,进入命令窗口,进入SampleServlet1.javaSampleServlet1.java所在所在的目录,输入
18、如下命令:的目录,输入如下命令:javac SampleServlet1.java javac SampleServlet1.java 3 3、编写、编写web.xmlweb.xml一个规范的一个规范的WebWeb应用项目,在应用项目,在WEB-INFWEB-INF目录下都应目录下都应该有一个该有一个web.xmlweb.xml文件,它用于对该文件,它用于对该WebWeb应用项目的应用项目的属性进行配置。属性进行配置。13从零开始从零开始JSP动态网页制作基础培训教程动态网页制作基础培训教程 在在web.xmlweb.xml文件中,可以定义:文件中,可以定义:lWebWeb应用项目的名称和说明
19、。应用项目的名称和说明。l针对环境参数初始化。针对环境参数初始化。lServletServlet的名称和映射。的名称和映射。lSessionSession的配置。的配置。lTag LibraryTag Library的配置。的配置。lJSPJSP网页的相关设置。网页的相关设置。lMIME TYEMIME TYE的配置。的配置。l错误处理。错误处理。lJNDIJNDI的配置的配置 14从零开始从零开始JSP动态网页制作基础培训教程动态网页制作基础培训教程 4 4、运行运行编译完编译完SampleServlet1.javaSampleServlet1.java文件,并且编写了文件,并且编写了web
20、.xmlweb.xml文件,并将其放到正确路径下,发布,运行文件,并将其放到正确路径下,发布,运行效果如下:效果如下:简单简单Servlet例子例子15从零开始从零开始JSP动态网页制作基础培训教程动态网页制作基础培训教程 5.Servlet5.Servlet的应用的应用1 1、获取、获取HTMLHTML表单信息表单信息 ServletServlet可以接收客户浏览器在可以接收客户浏览器在HTMLHTML表单中填入的表单中填入的信息,从而实现客户与服务器之间的交互。信息,从而实现客户与服务器之间的交互。书上给出了一个实例,书上给出了一个实例,该实例由一个该实例由一个HTMLHTML网页和网页和
21、一个一个ServletServlet程序组成。用户在程序组成。用户在HTMLHTML网页的表单中输网页的表单中输入用户信息,包括姓名、性别、入用户信息,包括姓名、性别、E-mailE-mail等,并提交等,并提交表单,表单,ServletServlet程序会接收这些信息(服务器就会默程序会接收这些信息(服务器就会默认调用认调用ServletServlet的的doPost()doPost()方法),然后打印输出到方法),然后打印输出到用户浏览器中。用户浏览器中。16从零开始从零开始JSP动态网页制作基础培训教程动态网页制作基础培训教程 2 2、JSPJSP调用调用ServletServlet 在
22、在ServletServlet中定义属性和方法,并在中定义属性和方法,并在JSPJSP网页中调网页中调用。用。书中改写了第书中改写了第6 6章的个人所得税计算器,用章的个人所得税计算器,用ServletServlet取代原来的取代原来的JavaBeanJavaBean。采用采用HTML+JSP+ServletHTML+JSP+Servlet模式:模式:HTMLHTML网页网页sample2.htmlsample2.html用来接收用户输入当月个人总收入和用来接收用户输入当月个人总收入和当地个人所得税起征额;当地个人所得税起征额;JSPJSP网页网页sample1.jspsample1.jsp用
23、来用来显示计算出的个人所得税;显示计算出的个人所得税;ServletServlet程序程序SampleServlet3.javaSampleServlet3.java用来计算个人所得税。用来计算个人所得税。17从零开始从零开始JSP动态网页制作基础培训教程动态网页制作基础培训教程 3 3、ServletServlet调用调用JavaBeanJavaBean 如果将个人所得税计算器实例中的如果将个人所得税计算器实例中的JSPJSP换成换成ServletServlet,那么就需要在,那么就需要在ServletServlet中调用中调用JavaBeanJavaBean。18从零开始从零开始JSP动态
24、网页制作基础培训教程动态网页制作基础培训教程 JSPJSP和和ServletServlet有很大的联系,所有的有很大的联系,所有的JSPJSP都要编译都要编译成成ServletServlet,并且在服务器中执行。,并且在服务器中执行。JSPJSP以显示为主,这为以显示为主,这为WebWeb开发人员提供了方便。在开发人员提供了方便。在ServletServlet中,使用语句一条一条输出中,使用语句一条一条输出HTMLHTML脚本,非常脚本,非常麻烦。麻烦。JSPJSP可以把可以把WebWeb应用开发的显示和逻辑分离出来,使应用开发的显示和逻辑分离出来,使用用JavaBeanJavaBean、Ta
25、glibTaglib等处理程序中的业务逻辑,而等处理程序中的业务逻辑,而JSPJSP只需要专注显示部分。只需要专注显示部分。JSPJSP由服务器自动编译。由服务器自动编译。6.6.选择选择JSPJSP还是还是ServletServlet19从零开始从零开始JSP动态网页制作基础培训教程动态网页制作基础培训教程 ServletServlet技术曾经得到了广泛的应用,但随着技术曾经得到了广泛的应用,但随着JSPJSP的成熟和普及,以及的成熟和普及,以及J2EEJ2EE平台的不断完善,使用平台的不断完善,使用ServletServlet的也越来越少了的也越来越少了,原因如下:原因如下:就业务处理能力
26、来说,就业务处理能力来说,ServletServlet不如不如JavaBeamJavaBeam和和EJBEJB强大。强大。就页面显示能力来说,就页面显示能力来说,ServletServlet不如不如JSPJSP方便。方便。选择选择JSPJSP和和ServletServlet,往往不是绝对的。常见的是,往往不是绝对的。常见的是将两者结合起来,例如使用将两者结合起来,例如使用ServletServlet来处理用户请求,来处理用户请求,处理完毕,将结果发送给处理完毕,将结果发送给JSPJSP,由,由JSPJSP来进行显示等。来进行显示等。20从零开始从零开始JSP动态网页制作基础培训教程动态网页制作
27、基础培训教程 一、填空题一、填空题1.Http1.Http的全称为的全称为_。2.Http2.Http协议支持多种方法,如协议支持多种方法,如GETGET、_、_、_等,与等,与HttpHttp协议的这些方法相比,协议的这些方法相比,Http Http ServletServlet也有类似的方法,如也有类似的方法,如doGet()doGet()、_、_、_等。等。二、问答题二、问答题什么是什么是ServletServlet,ServletServlet有哪些特点?有哪些特点?HttpHttp协议定义了一个客户端浏览器协议定义了一个客户端浏览器/Web/Web服务器结构的简单事务处服务器结构的简单事务处理,其主要步骤是什么?理,其主要步骤是什么?相比相比ServletServlet,JSPJSP有哪些优势?有哪些优势?21从零开始从零开始JSP动态网页制作基础培训教程动态网页制作基础培训教程 谢谢!结束22