Servlet详细教程.docx

上传人:b****2 文档编号:17659087 上传时间:2023-04-24 格式:DOCX 页数:82 大小:1.02MB
下载 相关 举报
Servlet详细教程.docx_第1页
第1页 / 共82页
Servlet详细教程.docx_第2页
第2页 / 共82页
Servlet详细教程.docx_第3页
第3页 / 共82页
Servlet详细教程.docx_第4页
第4页 / 共82页
Servlet详细教程.docx_第5页
第5页 / 共82页
点击查看更多>>
下载资源
资源描述

Servlet详细教程.docx

《Servlet详细教程.docx》由会员分享,可在线阅读,更多相关《Servlet详细教程.docx(82页珍藏版)》请在冰豆网上搜索。

Servlet详细教程.docx

Servlet详细教程

1.0简介

典型的桌面应用程序的示例有记事本,媒体播放器等等。

是本地.exe程序。

用户和桌面程序的交互如图1.1。

图1.1用户和桌面程序的交互

随着Internet的兴起,现在大多数电脑用户更加习惯Internet的Web应用。

用户和Web应用程序的交互如图1.2所示。

图1.2用户访问网站

Web应用程序和桌面程序相比,优点如下。

首先,Web应用程序的访问更加容易,用于访问Web应用的标准协议为HTTP协议,为绝大多数操作系统所支持。

此外,所要求的客户端仅仅是浏览器。

其次,维护和部署成本低,Web应用程序在浏览器中请求运行,不需要在每个客户端系统上安装客户端软件。

Web应用程序代码可以再服务器端进行修改和维护,这将节省更新和部署应用程序所需要的时间和成本。

Web应用运行在服务器上,服务器是一台设备,它为网络上的不同设备,即客户端的请求提供信息。

最初,通过编写CGI(CommonGatewayInterface,通用网关接口)程序来实现数据在Web上的传输,但是,对于客户端作出的每个请求,必须创建CGI程序的一个新实例,这将占用大量内存。

因此,为了解决这个问题,引入了Servlet技术。

Servlet是一个用Java编写的应用程序,在服务器上运行,处理请求的信息并将其发送到客户端。

Servlet的客户端可以提出请求并获得该请求的响应,它可以使任何Java应用程序、浏览器或任何设备。

对于所有的客户端请求,只需要创建Servlet的实例一次,因此节省了大量的内存。

Servlet在初始化后即驻留内存中,因此每次作出请求时无需加载。

1.1C/S和B/S的区别

要想对“C/S”和“B/S”技术发展变化有所了解,首先必须搞清楚三个问题。

1.1.1、什么是C/S结构。

C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。

它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配Client端和Server端来实现,降低了系统的通讯开销。

目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。

这也就是目前应用系统的发展方向。

传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。

由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。

而且代价高,效率低。

1.1.2、什么是B/S结构。

B/S(Browser/Server)结构即浏览器和服务器结构。

它是随着

Internet技术的兴起,对C/S结构的一种变化或者改进的结构。

在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端

(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。

这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。

以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。

它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。

特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。

1.1.3、管理软件主流技术。

管理软件技术的主流技术与管理思想一样,也经历了三个发展时期。

首先,界面技术从上世纪DOS字符界面到Windows图形界面(或图形用户界面GUI),直至Browser浏览器界面三个不同的发展时期。

其次,今天所有电脑的浏览器界面,不仅直观和易于使用,更主要的是基于浏览器平台的任何应用软件其风格都是一样的,使用人对操作培训的要求不高,而且软件可操作性强,易于识别;再者,平台体系结构也从过去单用户发展到今天的文件/服务器(F/S)体系、客户机/服务器(C/S)体系和浏览器/服务器(B/S)体系。

1.1.4、C/S和B/S之比较

C/S和B/S是当今世界开发模式技术架构的两大主流技术。

C/S是美国Borland公司最早研发,B/S是美国微软公司研发。

目前,这两项技术以被世界各国所掌握,国内公司以C/S和B/S技术开发出产品也很多。

这两种技术都有自己一定的市场份额和客户群

1、C/S架构软件的优势与劣势

(1)、应用服务器运行数据负荷较轻。

最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。

二者可分别称为前台程序与后台程序。

运行数据库服务器程序的机器,也称为应用服务器。

一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。

(2)、数据的储存管理功能较为透明。

在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。

所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。

在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。

在C/S体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。

(3)、C/S架构的劣势是高昂的维护成本且投资大。

首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。

其次,传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。

在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。

2、B/S架构软件的优势与劣势

(1)、维护和升级方式简单。

目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。

对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之

间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。

无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。

所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。

今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。

因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。

(2)、成本降低,选择更多。

大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。

现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。

所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。

比如说很多人每天上“网易”(原文为新浪)网,只要安装了浏览器就可以了,并不需要了解“网易”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。

(3)、应用服务器运行数据负荷较重。

由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。

但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。

因此,许多单位都备有数据库存储服务器,以防万一。

3,C/S与B/S区别

Client/Server是建立在局域网的基础上的,Browser/Server是建立在广域网的基础上的。

(1)、硬件环境不同:

C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。

B/S建立在广域网之上的,不必是专门的网络硬件环境,例如电话上网,租用设备,信息自己管理,有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。

(2)、对安全要求不同

C/S一般面向相对固定的用户群,对信息安全的控制能力很强。

一般高度机密的信息系统采用C/S结构适宜,可以通过B/S发布部分可公开信息。

B/S建立在广域网之上,对安全的控制能力相对弱,面向是不可知的用户群。

(3)、对程序架构不同

C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。

B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上。

比C/S有更高的要求,B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk2000Exchange2000等,全面支持网络的构件搭建的系统。

SUN和IBM推的JavaBean构件技术等,使B/S更加成熟。

(4)、软件重用不同

C/S程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好。

B/S对的多重结构,要求构件相对独立的功能。

能够相对较好的重用。

就如买来的餐桌可以再利用,而不是做在墙上的石头桌子。

(5)、系统维护不同

系统维护是软件生存周期中,开销大,相当重要

C/S程序由于整体性,必须整体考察,处理出现的问题以及系统升级难,可能是再做一个全新的系统。

B/S构件组成方面构件个别的更换,实现系统的无缝升级。

系统维护开销减到最小,用户从网上自己下载安装就可以实现升级。

(6)、处理问题不同

C/S程序可以处理用户面固定,并且在相同区域,安全要求高的需求,与操作系统相关,应该都是相同的系统。

B/S建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的,与操作系统平台关系最小。

(7)、用户接口不同

C/S多是建立在Window平台上,表现方法有限,对程序员普遍要求较高。

B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交流,并且大部分难度减低,降低开发成本。

1.2HTTP基础知识

用户的请求和Web应用程序的相应需要通过Internet从一台计算机发送到另一台计算机或服务器,使用超文本传输协议HTTP。

HTTP是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准。

客户端是终端用户,服务器端是网站。

通过使用Web浏览器等工具,客户端发起一个到服务器上指定端口的HTTP请求。

应答的服务器上存储着一些资源,比如HTML文件和图像。

HTTP协议并没有规定必须使用它和基于它支持的层。

事实上,HTTP可以在任何其他互联网协议上,或者在其他网络上实现。

HTTP只假定其下层协议提供可靠的传输,任何能够提供这种保证的协议都可以被其使用。

1.2.1GET和POST方法区别

HTTP请求消息使用GET或POST方法以便在Web上传输请求。

检索信息时一般用GET方法,如检索文档、图表、或数据库查询结果。

要检索的信息作为字符序列传递,称为查询字符串。

因此,传递的数据对客户端是可见的,即将查询字符串附加到URL中,但是,查询字符串的长度有限制,最多124字节。

GET方法是表单默认的方法。

我们用google检索“java”,可以知道google使用了GET方法对用户输入的搜索字符串检索搜索结果。

如图1.1所示。

图1.1

HTTP定义的另一种请求方法是POST方法。

使用POST发送的数据对客户端是不可见的,且对发送的数据的量没有限制。

下面我们来对比一下GET和POST方法。

ØGET是从服务器上获取数据;POST是向服务器传送数据。

Ø在客户端,GET通过URL提交数据,数据在URL中可见;POST把数据放在form的数据体内提交。

ØGET提交的数据最多只有1024字节;POST提交的数据量无限制。

Ø由于使用GET时,参数会显示在地址栏上,而POST不会,所以,如果这些数据是非敏感数据,那么使用GET;如果包含敏感数据,为了安全,用POST。

1.3Servlet简介和优点

自SunMicrosystems公司所组成的JavaSoft部门将ServletAPI定案以来,推出了ServletAPI1.0,就当时功能来说,Servlet所提供的功能包含了当时的CGI与NetscapeServerAPI(NSAPI)之类产品的功能。

发展至今,它依旧是一个具有跨平台特性、10%PureJava的Server-Side程序,Servlet不只限定于HTTP协议,开发人员可以利用Servlet自定义或延伸任何支持Java的Server,包括WebServer、MailServer、FtpServer、ApplicationServer或任何自定义的Server。

Server有以下优点:

可移植性,Servlet皆是利用Java语言来开发的,因此,延续Java在跨平台上的表现,不论Server的操作系统是什么,Windows、Linux、Solaris、HP-UX等,都能够将我们写好的Servlet程序放在这些操作系统上执行,借助Servlet的优势,就可以真正达到WriteOnce,ServeAnywhere的境界。

Servlet是在Server端执行的,所以,程序员只要专心开发能在实际应用的平台环境下测试无误即可。

除非从事做ServletContainer的公司,否则不须担心写出来的Servlet是否能在所有的JavaServer平台上执行。

强大的功能,Servlet能够完全发挥JavaAPI的威力,包括网络和URL存取、多线程、影像处理、RMI(RemoteMethodInvocation)、分布式服务器组件、对象序列化等。

若想写个网络目录查询程序,则可以利用JNDIAPI,相连接数据库可以用JDBC,偶这些强大功能的API做后盾,相信Servlet更能发挥其优势。

性能,Servlet在加载执行后,其对象实体通常会一直停留在Server的内存中,若有请求发生时,服务器再调用Servlet来服务,假若收到相同服务的请求时,Servlet会利用不同的线程来处理,不像CGI程序必须产生许多进程来处理数据。

在性能表现上,大大超过CGI程序。

Servlet在执行时,不是一直停留在内存中,服务器会自动将停留时间过长一直没有执行的Servlet从内存中移除,不过有时候也可以自行写程序来控制,至于停留时间长短通常和选用的服务器有关。

安全性,Servlet也有类型检查的特性,并且利用Java的垃圾回收与没有指针的设计,使得Servlet避免内存管理的问题。

由于在Java的异常处理机制下,Servlet能够安全地处理各种错误,不会因为发生程序上逻辑错误而导致整体服务器系统的崩溃。

例如,某个Servlet发生除以零或其他不合法的运算时,会抛出一个异常让服务器处理,如记录在Log日志中。

节省投资,不仅有许多廉价甚至免费的Web服务器可供个人或小规模网站使用,而且对于现有的服务器,如果它不支持Servlet的话,要加上这部分功能也往往是免费的(或只需要极少的投资)。

1.4Tomcat概述

Tomcat简介:

TOMCAT是APACHEJAKARTA软件组织的一个子项目,TOMCAT是一个JSP/SERVLET容器,它是在SUN公司的JSWDK(JAVASERVERWEBDEVELOPMENTKIT)基础上发展起来的一个JSP和SERVLET规范的标准实现,使用TOMCAT可以体验JSP和SERVLET的最新规范。

经过多年的发展,TOMCAT不仅是JSP和SERVLET规范的标准实现,而且具备了很多商业JAVASERVLET容器的特性,并被一些企业用于商业用途。

1.4.1Tomcat

Tomcat在严格意义上并不是一个真正的应用服务器,它只是一个可以支持运行Serlvet/JSP的Web容器,不过Tomcat也扩展了一些应用服务器的功能,如JNDI,数据库连接池,用户事务处理等等。

Tomcat是一种具有JSP环境的Servlet容器。

Servlet容器是代替用户管理和调用Servlet的运行时外壳。

1.1SERVLET容器

负责处理客户请求。

当客户请求来到时,SERVLET容器获取请求,然后调用某个SERVLET,并把SERVLET的执行结果返回给客户。

当客户请求某个资源时,SERVLET容器使用SERVLETREQUEST对象把客户的请求信息封装起来,然后调用JAVASERVLETAPI中定义的SERVLET的一些生命周期方法,完成SERVLET的执行,接着把SERVLET执行的要返回给客户的结果封装到SERVLETRESPONSE对象中,最后SERVLET容器把客户的请求发送给客户,完成为客户的一次服务过程。

1.2TOMCAT的工作模式

1.2.1独立的SERVLET容器

TOMCAT的默认工作模式,作为独立的SERVLET容器,是内置在WEB服务器中的一部分,是指使用基于JAVA的WEB服务器的情形。

其他两种方式是TOMCAT与其他服务器集成的方式:

1.2.2进程内的SERVLET容器

SERVLET容器作为WEB服务器的插件和JAVA容器的实现。

WEB服务器的插件在内部地址空间打开一个JVM(JAVAVIRTUALMACHINE)使JAVA容器得以在内部运行。

如有某个需要调用SERVLET的请求,插件将取得对此请求的控制并将它传递(使用JNI)给JAVA容器。

进程内的容器对于多线程、单进程的服务器非常适合,并且提供了很好的运行速度,只是伸缩性有所不足。

注意:

JNI是JAVANATIVEINTERFACE的缩写,是JAVA本地调用接口,通过JNI,JAVA程序可以和其他语言编写的本地程序进行通信。

1.2.3进程外的SERVLET容器

SERVLET容器运行于WEB服务器之外的地址空间,并且作为WEB服务器的插件和JVM使用IPC(如TCP/IP)进行通信。

进程外容器的反应时间不如进程内的容器,但有较好的伸缩性、稳定性等性能。

IPCINTERPROCESSCOMMUNICATION(进程间通信)的简写,它是实现进程间通信的一种技术。

1.3TOMCAT的组织结构

TOMCAT是一个基于组件的服务器,它的构成组件都是可配置的,其中最外层的组件是CATALINASERVLET容器,其他的组件按照一定的格式要求配置在这个顶层容器中。

TOMCAT的各个组件是\conf\server.xml文件中配置的,TOMCAT服务器默认情况下对各种组件都有默认的实现,下面通过分析server.xml文件来理解TOMCAT的各个组件是如何组织的。

顶层元素,代表一个服务器

顶层元素,是Connector的集合,只有一个Engine

连接器类元素,代表通信接口

容器类元素,为特定的Service组件处理所有客户请求,可包含多个Host

为特定的虚拟主机处理所有客户请求

为特定的WEB应用处理所有客户请求

TOMCAT中真正处理客户请求与生成响应的三个组件是Engine、Host、Context

1.4.2Tomcat目录结构

(1)Tomcat的安装

其实对于完全由Java写成的Tomcat,Win32版本和Linux版本没有多大区别,比如Linux版本,在Solaris下也没有问题。

这里,主要以Win32版本作为示例。

注意:

在安装使用Tomcat之前,先安装JDK,最好是Sun的JDK1.2以上版。

(2)Tomcat的目录结构

首先,下载jakarta-tomcat.zip包,解压缩到一个目录下,如:

“c:

\tomcat”。

这时,会得到如下的Tomcat的目录结构:

---jakarta-tomcat

|---binTomcat执行脚本目录

|---Common放置一些通用类(如JDBC的驱动程序等)

|---confTomcat配置文件

|---docTomcat文档

|---libTomcat运行需要的库文件(JARS)

|---logsTomcat执行时的LOG文件

|---srcTomcat的源代码

|---webappsTomcat的主要Web发布目录(存放我们自己的JSP,SERVLET,类)

|---workTomcat的工作目录,Tomcat将翻译JSP文件到的Java文件和class文件放在这里。

目录名

该目录内的文件的一般功能描述

bin

包含有Startup.bat(启动服务器)与shutdown.bat(关闭服务器)文件

conf

包含设置部署在Tomcat上的Web应用的变量的初始值的设置文件,包括server.xml(Tomcat的全局配置文件)和web.xml(为不同的Tomcat配置的web应用设置缺省值的文件)

doc

包含关于Tomcat的各种各样的文档。

common

在其lib目录下,主要存放如JDBC的驱动程序等

lib

包含被Tomcat使用的各种各样的jar文件。

在UNIX上,任何这个目录中的文件将被附加到Tomcat的classpath中。

logs

Tomcat的log文件。

src

servletAPI的源文件。

webapps

包含Web应用的程序(JSP、Servlet和JavaBean等)

work

由T

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电力水利

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1