【教学课件】第7章Servlet技术.ppt
1,第7章 Servlet技术,2,主要内容,1.Servlet简介 2.Applet、JSP、JavaBean与Servlet的关系3.Http与Servlet 4.如何编写、部署一个简单的Servlet 5.Servlet的应用 6.选择JSP还是Servlet,3,1.Servlet简介,Servlet是使用Java Servlet应用程序设计接口编写的Java程序。它源于请求/响应模式,如它可以接收来自客户端浏览器的Http请求,并产生一个响应,然后将这个响应发送到客户端。,4,总的说来,Servlet有以下特点:可移植性因为Servlet使用Java编写,Java具有跨平台性,所以Servlet的可移植性也很强,它可以在不同的操作系统和应用服务器下移植运行。灵活Servlet接口非常精练,易于掌握,同时,它又具有良好的扩展性。效率高当JSP网页第一次运行时,速度很慢,这是因为服务器要将这些JSP程序转换为Servlet,而一旦转换完毕,编译后常驻在内存中,访问JSP网页的速度就很快了。,5,2.Applet、JSP、JavaBean与Servlet的关系,Applet和Servlet程序中都没有main()方法,只有一些特定的方法用于启动、执行和退出,不同的是,Servlet不提供用户界面,运行在服务器端,而Applet提供用户界面,运行于客户端。Servlet和JavaBean一样,使用纯Java编写,不同的是,JavaBean不能独立运行,只是提供接口供JSP等访问,而Servlet可以独立运行。,6,可以说Servlet是JSP的前身,在JSP出现之前,Sun公司推出了Servlet,但由于使用Servlet编写HTML脚本时,需要使用print或者println方法逐句打印输出,这给开发人员带来很大麻烦,限制了Servlet的广泛应用,由此,JSP技术应运而生。JSP网页是在HTML脚本中嵌入Java代码,它从根本上改变了Servlet的编程方式。JSP、JavaBean和Servlet可以进行交流,例如:JSP可以调用JavaBean,也可以调用Servlet,在Servlet中处理数据后,也可以通过JSP网页显示出来等。本章在7.3节中会介绍JSP、JavaBean和Servlet之间的交流,并给出典型的实例。,7,3.Http与Servlet,虽然Servlet技术没有局限于某个协议,但目前使用最多的还是支持Http协议的Servlet,即Http Servlet。1、Http协议Http(HyperText Transfer Protocol)是“超文本传输协议”的简称,是一种Internet客户/服务器协议,为Web上用于发布信息的主要协议。Http协议定义了一个“客户端浏览器/Web服务器”结构的简单事务处理,下面是这个简单事务处理的几个步骤:建立连接、发送请求、提供服务、发送响应、关闭连接。,8,Http协议支持GET、POST、PUT、DELTE、OPTIONS等多种方法,与Http协议的这些方法相比,Http Servlet也有类似的方法。,9,2、Http Servlet如何来处理Http请求当一个Http请求到来时,Web服务器会将请求信息封装在一个类型为HttpServletRequest的对象中,同时创建一个类型为HttpServletResponse的对象,提供给Sevlet来输出响应信息。然后服务器就会调用被请求的doXXX()方法,并将这两个对象作为参数传入。service()方法是Servlet的核心,每当客户浏览器的Http请求到来时,该HttpServlet对象的service()方法就要被自动调用,而不是直接调用doXXX()方法。,10,在HttpSevlet中已经存在service()方法,其缺省的功能是调用与Http请求的方法相应的doXXX()方法。例如,Http请求为GET,则service()方法缺省情况下调用doGET()方法。我们在编程时,只需要覆盖响应的doXXX()方法即可,而不需要编写service()方法。事实上,我们编写Http Servlet,只需要对HttpServlet类进行扩展,一般也就覆盖(即重写)doGet()和doPUT()方法来完成希望的功能,对其他的方法可以不必理会。,11,1、编写Servlet程序一个很简单的Servlet,SampleServlet1.java的代码如见书。通常,编写Servlet需要基本包:javax.servlet.*和.*所有的Servlet都必须实现接口,通常我们将直接继承类HttpServlet,HttpServlet封装了编写基于Http协议Servlet的大部分功能。如果编写的Servlet与Http协议无关,那么就必须继承GenericServlet类。,4.如何编写、部署一个简单的Servlet,12,类中我们只编写一个方法doGet(),这个方法是用来处理Http的GET请求的。当客户端浏览器打开该Servlet程序时,便会发出一个GET请求,自动调用doGet()方法。程序中使用println()方法将HTML脚本打印输出,这是编写Servlet常用的方法。当客户端打开该Servlet程序,向服务器发出Http请求时,程序就自动调用doGet()方法,向客户端浏览器中打印输出上述脚本,最后浏览器会解析HTML脚本并将其显示出来。,13,2、编译Servlet程序与一般的Java程序一样,需要编译为class类文件。打开DOS命令窗口,进入SampleServlet1.java所在的目录,输入如下命令:javac SampleServlet1.java 3、编写web.xml一个规范的Web应用项目,在WEB-INF目录下都应该有一个web.xml文件,它用于对该Web应用项目的属性进行配置。,14,在web.xml文件中,可以定义:Web应用项目的名称和说明。针对环境参数初始化。Servlet的名称和映射。Session的配置。Tag Library的配置。JSP网页的相关设置。MIME TYE的配置。错误处理。JNDI的配置,15,4、运行编译完SampleServlet1.java文件,并且编写了web.xml文件,并将其放到正确路径下,发布,运行效果如下:,简单Servlet例子,16,5.Servlet的应用,1、获取HTML表单信息 Servlet可以接收客户浏览器在HTML表单中填入的信息,从而实现客户与服务器之间的交互。书上给出了一个实例,该实例由一个HTML网页和一个Servlet程序组成。用户在HTML网页的表单中输入用户信息,包括姓名、性别、E-mail等,并提交表单,Servlet程序会接收这些信息(服务器就会默认调用Servlet的doPost()方法),然后打印输出到用户浏览器中。,17,2、JSP调用Servlet 在Servlet中定义属性和方法,并在JSP网页中调用。书中改写了第6章的个人所得税计算器,用Servlet取代原来的JavaBean。采用HTML+JSP+Servlet模式:HTML网页sample2.html用来接收用户输入当月个人总收入和当地个人所得税起征额;JSP网页sample1.jsp用来显示计算出的个人所得税;Servlet程序SampleServlet3.java用来计算个人所得税。,18,3、Servlet调用JavaBean 如果将个人所得税计算器实例中的JSP换成Servlet,那么就需要在Servlet中调用JavaBean。,19,JSP和Servlet有很大的联系,所有的JSP都要编译成Servlet,并且在服务器中执行。JSP以显示为主,这为Web开发人员提供了方便。在Servlet中,使用语句一条一条输出HTML脚本,非常麻烦。JSP可以把Web应用开发的显示和逻辑分离出来,使用JavaBean、Taglib等处理程序中的业务逻辑,而JSP只需要专注显示部分。JSP由服务器自动编译。,6.选择JSP还是Servlet,20,Servlet技术曾经得到了广泛的应用,但随着JSP的成熟和普及,以及J2EE平台的不断完善,使用Servlet的也越来越少了,原因如下:就业务处理能力来说,Servlet不如JavaBeam和EJB强大。就页面显示能力来说,Servlet不如JSP方便。选择JSP和Servlet,往往不是绝对的。常见的是将两者结合起来,例如使用Servlet来处理用户请求,处理完毕,将结果发送给JSP,由JSP来进行显示等。,21,一、填空题1.Http的全称为_。2.Http协议支持多种方法,如GET、_、_、_等,与Http协议的这些方法相比,Http Servlet也有类似的方法,如doGet()、_、_、_等。二、问答题什么是Servlet,Servlet有哪些特点?Http协议定义了一个客户端浏览器/Web服务器结构的简单事务处理,其主要步骤是什么?相比Servlet,JSP有哪些优势?,22,谢谢!,结束,