服务器端开发技术Servl.ppt
《服务器端开发技术Servl.ppt》由会员分享,可在线阅读,更多相关《服务器端开发技术Servl.ppt(128页珍藏版)》请在三一办公上搜索。
1、2023/11/14,1,服务器端开发技术 Servlet,2023/11/14,2,服务器端开发技术Servlet,第一节.Servlet概述第二节.Servlet的开发环境及程序结构第三节.Servlet基础第四节.会话跟踪第五节.JDBC访问数据库,2023/11/14,3,第一节 Servlet概述,1.Servlet的作用 Servlet技术是使用Java技术开发Web应用的基础,后面讲述的JSP也是在它的基础上发展起来的。Servlet技术支持创建动态的Web页面,即页面内容根据用户输入或其他变量数据而改变的Web页面(动态页面),这就极大地增强了应用开发的能力。Servlet是一
2、个基于Java语言实现的服务器端组件,它可以被用来扩充Web服务器的功能。Servlet可以简单地看作一个Java类。最终该Java类运行在一个服务器端的Servlet容器内,通过容器提供会话管理和对象生命周期管理。,2023/11/14,4,2.Servlet的优点 Servlet效率更高、更容易编程、功能更强、更安全和具有良好的可移植性,因而成为主流的动态网站技术。Servlet最大的优势在于它的高性能,Servlet采用了和CGI不同的运行方式。其次,在默认情况下,Servlet以单实例多线程的方式工作。Servlet继承了Java的所有优势,包括易升级以及平台无关性,在进行程序编写的时
3、候可以调用Java所提供的大量的API。,2023/11/14,5,3.Servlet的基本工作原理 一个Servlet在服务器端由称为Servelt容器(也有称为servlet引擎)的程序来解释执行,可以把Servlet理解成Server上的applet,Servlet在被调用后会被动态地载入到容器由容器解释执行,这样通过Servlet包含的功能就扩展了Web服务器的功能。,2023/11/14,6,Web服务器和Servlet容器可以是两个独立的松耦合的应用程序(图表5-2),也可以是紧密集成的一个应用程序(图表5-3)。从图表5-2和图表5-3显示了一个典型的基于Servlet和JSP(
4、一种Servlet的变体)的Web应用程序,包括若干Servlet或者JSP文件,也可能包含许多HTML文件和图片等其他资源文件。客户端对于Servet的访问先到达Web Server,如果访问的是HTML文件和图片这样的静态资源文件,Web Server会直接处理并给出响应,而如果访问的是Servlet,那么通过Servlet容器去执行Servet并给出响应。浏览器或者其他应用程序一般通过HTTP协议访问Web Server。,2023/11/14,7,2023/11/14,8,第五章.服务器端开发技术 Servlet,第一节.Servlet概述第二节.Servlet的开发环境及程序结构第三
5、节.Servlet基础第四节.会话跟踪第五节.JDBC访问数据库,2023/11/14,9,第二节 Servlet的开发环境及程序结构,1.开发环境安装及测试(1)开发环境概述 进行Servlet开发所需要的基本环境是JSDK(Java Servlet Development Kit)、一个支持Servlet的Web服务器、集成开发工具。,2023/11/14,10,在本书中采用了JBuilder进行编辑、编译和调试Servlet。JSDK包含了编译Servlet应用程序所需要的Java类库以及相关的文档。常用的支持Servet的容器有Resin、Apache Tomcat、IBM Websp
6、here、BEA WebLogic Server等等。本教材面向的是学校的教学,在选择开发软件环境的时候必须考虑学校和学生的实际条件。因为Resin对资源要求不高,配置比较容易,学校实验室和学生本人都有条件使用Resin。因此,在本书关于Servle和JSP的开发中,都将采用Resin 作为Web服务器。其下载Resin的网址如下:http:/,2023/11/14,11,(2)Resin的安装 安装Resin的步骤如下:安装JDK在安装Resin之前要先安装JDK(建议版本在1.4以上)。拷贝Resin目录安装完JDK之后如果要安装Resin,只需要把Resin文件夹(下载后的Resin压缩
7、文件展开后的文件夹)拷贝到机器的特定目录下就可以了,不需要其他配置操作。启动RESIN拷贝完毕后,要启动RESIN直接执行httpd.exe即可。测试启动后,即可测试是否工作正常,方法是在浏览器里面输入http:/机器名:8080即可(如果是本机也可以输入 http:/localhost:8080)。,2023/11/14,12,Resin安装完毕后的目录结构大致如下图:,2023/11/14,13,从上图可以看出,Resin安装在文件夹下,版本号是。其中在子文件夹bin下的httpd.exe是可执行程序,子文件夹conf目录下存放配置文件。建议把所开发的应用程序存放在路径为Webapps文件
8、夹下。另外注意,在lib子文件夹下有很多jar文件,其中jsdk23.jar是执行servlet时需要到的包,这个文件里面包含与开发Servlet有关的包和很多类,我们在Jbulider或者其他开发工具中要指定使用这个包。,2023/11/14,14,(3)Resin环境测试 安装好Resin后,我们可以启动Resin服务器,方式是执行httpd.exe即可,启动后屏幕显示结果如下图,仔细确认屏幕,如果其上没有出错提示,那么表示Resin已经启动。启动后屏幕显示结果 如下:,2023/11/14,15,为验证Resin是否工作正常,我们需要打开浏览器测试一下,在地址栏输入http:/local
9、host:8080,如果屏幕出现类似下面内容,表示Resin工作正常。,2023/11/14,16,2.配置Web应用 一般一个Web应用发布时都会有一个自己发布区,这个发布区往往对应一个物理的目录,所有发布的html文件、图片文件、样式表、Servlet类、JSP文件和其他一些描述性文件等都要放到这个目录及其子目录下。(1)Resin的配置文件 Resin的配置文件是resin.conf,位于安装目录的conf目录下(比如D:resin-2.1.16conf)。resin.conf是一个XML格式的配置文件,这个配置文件由很多标记组成。标记对标记对,2023/11/14,17,标记对标记是用
10、来配置Resin所使用的资源,一般用来声明管理资源,如数据库驱动程序等。,2023/11/14,18,标记对在标记对中的配置和resin的Java Web 服务器有关。找到,在标记对里的id属性和app-dir子标记非常重要。id属性表示该应用的Web路径。如,表示该应用在Web上访问的时候应该用http:/机器名/shopping/来访问。app-dir属性表示该应用的实际路径。如:d:resindoctest表示该应用在d:resindoctest目录下。,2023/11/14,19,(2)配置自己的Web应用 假设我们有一个welcome.html的网页、一个counter.jsp的JS
11、P文件和一个类名为RequestInfoExample.class的Servlet,现在要发布它们到一个支持Java的Web服务器上,访问的URL分别为:http:/localhost:8080/myweb/welcome.html http:/localhost:8080/myweb/counter.jsp,2023/11/14,20,修改Resin的配置文件 为了做到这点,需要修改Resin的配置文件resin.conf,在该配置文件中的中需要增加一个和其他并列的标记,指定id=/myweb,同时在的子标记中指定D:resin-2.1.16myweb,其他标记和值暂时忽略不变。该配置文件内
12、容如下:D:resin-2.1.16myweb 修改配置文件后,一定记住要重新启动Resin,以便使新的修改被重新加载从而生效。,2023/11/14,21,HTML网页的发布及测试 使用记事本或者网页编辑工具编辑如下html代码并保存到前面配置的D:resin-2.1.16myweb目录下,文件名为welcome.html。welcome.html内容如下:Welcome,have a nice day.打开浏览器,在地址栏输入http:/localhost:8080/myweb/welcome.html,就可以看到网页的执行结果。,2023/11/14,22,JSP的发布及测试 同样,使用
13、记事本或者网页编辑工具编辑如下JSP代码并保存到前面配置的D:resin-2.1.16myweb目录下,文件名为counter.jsp。counter.jsp,其内容如下:Counter欢迎,访问次数:打开浏览器,在地址栏输入http:/localhost:8080/myweb/counter.jsp,就可以看到JSP的执行结果。多刷新几次或者关闭浏览器重新访问看看结果会如何。,2023/11/14,23,3.第一个Servlet(1)编写及编译Servlet Java Servlet API是一个标准的Java扩展程序包,和Servlet相关的有javax.servlet和两个Java包。对
14、于想开发基于客户自定义协议的开发者,应该使用javax.servlet包中的类与接口;对于仅利用HTTP协议与客户端进行交互的开发者,则只需要使用包中的类与接口进行开发即可。,2023/11/14,24,Servlet的结构 下面一个例子RequestInfoExample.java打印前端请求参数,代码如下:import javax.servlet.*;import.*;import java.io.*;import java.util.*;public class RequestInfoExample extends HttpServlet public void doGet(HttpSe
15、rvletRequest request,HttpServletResponse response)throws IOException,ServletExceptionresponse.setContentType(text/html);PrintWriter out=response.getWriter();out.println();out.println();out.println();out.println(Request Information Example);out.println();out.println();out.println(Request Information
16、Example);out.println(Method:+request.getMethod();out.println(Request URI:+request.getRequestURI();out.println(Protocol:+request.getProtocol();out.println(PathInfo:+request.getPathInfo();out.println(Remote Address:+request.getRemoteAddr();out.println();out.println();public void doPost(HttpServletRequ
17、est request,HttpServletResponse response)throws IOException,ServletExceptiondoGet(request,response);,2023/11/14,25,有关该servlet程序结构说明 一般基于HTTP协议的servlet要引入javax.servlet和包RequestInfoExample从类HttpServlet派生,HttpServlet为基于HTTP协议的Servlet提供了基本的支持;HttpServletRequest对象包含了客户端请求的信息,可以通过该参数取得客户端的一些信息(例如IP地址、浏览器类
18、型等)以及HTTP请求类型(例如GET、HEAD、POST、PUT等);HttpServletResponse对象用于完成Servlet与客户端的交互,通过调用HttpServletResponse.getWriter 方法取得向客户端进行输出的输出流(PrintWriter的对象),向客户端发送HTML页面。编写了doGet方法,对于HTML POST 请求,调用Servlet 的doPost()方法。,2023/11/14,26,编译Servlet(RequestInfoExample.java)利用Jbuilder对Servlet代码进行编译,在编译的时候一定记住要在Jbuilder中设
19、置JSDK的路径,否则会找不到Servlet编译需要的类。编译后会生成RequestInfoExample.class类文件,该文件要发布到Resin服务器的myweb应用中,以便客户端调用。,2023/11/14,27,(2)配置Resin以调用Servlet Servlet编译后要发布到Resin服务器的指定目录下,然后通过URL去调用,就象调用HTML文件和JSP文件一样。Servlet的发布稍微麻烦一些,主要有两个工作:把类编译后的类文件拷贝到特定目录 如果要作为myweb应用的一部分发布,那么需要拷贝RequestInfoExample.class到D:resin-2.1.16myw
20、ebWEB-INFclasses目录下。如果没有该目录,手工创建即可。指定要发布的Servlet 需要在Resin配置文件resin.conf里指定要发布的Servlet,包括要让客户端调用的Servlet,调用的映射地址,并且重新启动Resin。一般Resin的配置文件发生改动,或者发布的Servlet类有变化时都需要重新启动Resin。,2023/11/14,28,为了调用RequestInfoExample Servlet,resin配置文件还针对myweb应用增加下面黑体字的内容:D:resin-2.1.16myweb,2023/11/14,29,这段代码中的servlet这一段声明了
21、你要调用的Servlet的Java类是RequestInfoExample(servlet-class=RequestInfoExample,不带.class扩展名);同时指定它的逻辑名字是RequestInfoName(servlet-name=RequestInfoName),逻辑名字和类名不同(当然也可以相同);servlet-mapping声明逻辑名字为RequestInfoName的Servet访问时候可以通过地址/RequestInfo访问,地址/RequestInfo和Servelt的类名可以相同也可以不同。在上述配置下,可以使用如下URL去访问该Servlet:http:/lo
22、calhost:8080/myweb/RequestInfo(访问方式1),2023/11/14,30,可以看出配置文件中的url-pattern=/RequestInfo 和共同决定了Servlet的调用URL(/myweb/RequestInfo)。使用配置可以让URL中访问Servlet时候的路径和Servlet类的名字无关,这样即使Servlet的类的名字修改了,对外访问的URL也可以不变,这样带来了很大的灵活性。当然,访问的时候,也可以直接通过类名或者逻辑名字访问Servlet,访问URL如下:(访问方式2)http:/localhost:8080/myweb/servlet/Req
23、uestInfoExample(访问方式3)http:/localhost:8080/myweb/servlet/RequestInfoName,2023/11/14,31,第五章.服务器端开发技术 Servlet,第一节.Servlet概述第二节.Servlet的开发环境及程序结构第三节.Servlet基础第四节.会话跟踪第五节.JDBC访问数据库,2023/11/14,32,第三节 Servlet基础,5.3.1 Servlet的生命周期 一个Java servlet具有一个生命周期,这个生命周期定义了一个Servlet如何被载入并被初始化,如何接收请求并作出对请求的响应,如何被从服务中清
24、除。Servlet的生命周期被这个接口所定义。所有的Java Servlet都会直接地或间接地执行接口,这样它才能在一个Servlet引擎中运行。Servlet引擎是Web 服务器按照Servlet API定制的扩展。Servlet引擎提供网络服务,能够理解MIME请求,并提供一个运行Servlet的容器。理解并掌握Servlet的生命周期极为重要,只有理解了Servlet的生命周期里涉及的方法、方法的作用和方法的调用时机,才能掌握Servlet编程。接口定义了在Servlet的生命周期中特定时间以及特定顺序被调用的方法(下图)。,2023/11/14,33,1、Servlet的解析、载入和初
25、始化 Web容器(含Servlet引擎)在启动时或者在一个Servlet被请求时载入一个Servlet并对Servlet进行初始化,在这一过程中,Servlet可以读取一些固定存储的数据、初始化JDBC的连接以及建立与其他资源的连接。,2023/11/14,34,2、Servlet处理请求 Servlet被初始化之后,它可以处理来自客户端的请求,每一个来自客户端的请求都被描述成一个ServletRequest对象,而Servlet的响应被描述成一个ServletResponse对象。当客户端发出请求时,Servlet引擎传递给Servlet一个ServletRequest对象和一个Servle
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 服务器端 开发 技术 Servl
链接地址:https://www.31ppt.com/p-6583268.html