服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java servlet 和 jsp入门教程

1 概述

1.1 java servlet及其特点

 servlet 是java技术对cgi编程的回答。servlet程序在服务器端运行,动态地生成web页面。与传统的cgi和许多其他类似cgi的技术相比,java servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资(更重要的是, servlet程序员收入要比perl程序员高:-):

高效

 在传统的cgi中,每个请求都要启动一个新的进程,如果cgi程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。而在servlet中,每个请求由一个轻量级的java线程处理(而不是重量级的操作系统进程)。

 在传统cgi中,如果有n个并发的对同一cgi程序的请求,则该cgi程序的代码在内存中重复装载了n次;而对于servlet,处理请求的是n个线程,只 需要一份servlet类代码。在性能优化方面,servlet也比cgi有着更多的选择,比如缓冲以前的计算结果,保持数据库连接的活动,等等。

方便

 servlet提供了大量的实用工具例程,例如自动地解析和解码html表单数据、读取和设置http头、处理cookie、跟踪会话状态等。

功能强大

 在servlet中,许多使用传统cgi程序很难完成的任务都可以轻松地完成。例如,servlet能够直接和web服务器交互,而普通的cgi程序不能。servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。

可移植性好

 servlet 用java编写,servlet api具有完善的标准。因此,为i-planet enterprise server写的servlet无需任何实质上的改动即可移植到apache、microsoft iis或者webstar?负跛?有的主流服务器都直接或通过插件支持servlet。

节省投资

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

1.2 jsp及其特点

 javaserver pages(jsp)是一种实现普通静态html和动态html混合编码的技术,有关jsp基础概念的说明请参见《jsp技术简介 》。

 许多由cgi程序生成的页面大部分仍旧是静态html,动态内容只在页面中有限的几个部分出现。但是包括servlet在内的大多数cgi技术及其变种,总是通过程序生成整个页面。jsp使得我们可以分别创建这两个部分。例如,下面就是一个简单的jsp页面:

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head><title>欢迎访问网上商店</title></head>
<body>
<h1>欢迎</h1>
<small>欢迎,
<!-- 首次访问的用户名字为"new user" -->
<% out.println(utils.getusernamefromcookie(request)); %>
要设置帐号信息,请点击
<a href="account-settings.html">这里</a></small>
<p>
页面的其余内容...
</body>&l t;/html>

下面是jsp和其他类似或相关技术的一个简单比较:

jsp和active server pages(asp)相比

 microsoft 的asp是一种和jsp类似的技术。jsp和asp相比具有两方面的优点。首先,动态部分用java编写,而不是vb script或其他microsoft语言,不仅功能更强大而且更易于使用。第二,jsp应用可以移植到其他操作系统和非microsoft的web服务 器上。

jsp和纯servlet相比

 jsp并没有增加任何本质上不能用servlet实现的功能。但是,在jsp 中编写静态html更加方便,不必再用 println语句来输出每一行html代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计专家进行 html设计,同时留出供servlet程序员插入动态内容的空间。

jsp和服务器端包含(server-side include,ssi)相比

 ssi是一种受到广泛支持的在静态html中引入外部代码的技术。jsp在这方面的支持更为完善,因为它可以??servlet而不是独立的程序来生成动态内容。另外,ssi实际上只用于简单的包含,而不是面向那些能够处理表单数据、访问数据库的“真正的”程序。

jsp和_javascript相比

 _javascript 能够在客户端动态地生成html。虽然_javascript很有用,但它只能处理以客户端环境为基础的动态信息。除了cookie之外,http状态和 表单提交数据对_javascript来说都是不可用的。另外,由于是在客户端运行,_javascript不能访问服务器端资源,比如数据库、目录信息 等等。

2 安装

2.1 安装servlet和jsp开发工具

 要学习servlet和jsp开发,首先你必须准备一个符合java servlet 2.1/2.2和javaserver pages1.0/1.1规范的开发环境。sun提供免费的javaserver web development kit(jswdk),可以从http://java.sun.com/products/servlet/下载。

 安装好jswdk 之后,你还要告诉javac,在编译文件的时候到哪里去寻找servlet和jsp类。jswdk安装指南对此有详细说明,但主??就是把 servlet.jar和jsp.jar加入classpath。classpath是一个指示java如何寻找类文件的环境变量,如果不设置 classpath,java在当前目录和标准系统库中寻找类;如果你自己设置了classpath,不要忘记包含当前目录(即在classpath中包 含“.”)。

 另外,为了避免和其他开发者安装到同一web服务器上的servlet产生命名冲突,最好把自己的servlet放入包里面。此时,把包层次结构中的顶级目录也加入classpath会带来不少方便。请参见下文具体说明。

2.2 安装支持servlet的web服务器

 除了开发工具之外,你还要安装一个支持java servlet的web服务器,或者在现有的web服务器上安装servlet软件包。如果你使用的是最新的web服务器或应用服务器,很可能它已经有了 所有必需的软件。请查看web服务器的文档,或访问http: //java.sun.com/products/servlet/industry.html查看支持servlet的服务器软件清单。

 虽然最终运行servlet的往往是商业级的服务器,但是开始学习的时候,用一个能够在台式机上运行的免费系统进行开发和测试也足够了。下面是几种当前最受欢迎的产品。

apache tomcat.

 tomcat 是servlet 2.2和jsp 1.1规范的官方参考实现。tomcat既可以单独作为小型servlet、jsp测试服务器,也可以集成到apache web服务器。直到2000年早期,tomcat还是唯一的支持servlet 2.2和jsp 1.1规范的服务器,但已经有许多其它服务器宣布提供这方面的支持。

 tomcat和apache一样是免费的。不过,快速、稳定的 apache服务器安装和配置起来有点麻烦,tomcat也有同样的缺点。和其他商业级servlet引擎相比,配置tomcat的工作量显然要多一点? 咛迩氩渭 ?http://jakarta.apache.org/ 。

javaserver web development kit (jswdk).

 jswdk 是servlet 2.1和jsp 1.0的官方参考实现。把servlet和jsp应用部署到正式运行它们的服务器之前,jswdk可以单独作为小型的servlet、jsp测试服务器。 jswdk也是免费的,而且具有很好的稳定性,但它的安装和配置也较为复杂?咛迩氩渭 ?http://java.sun.com/products/servlet/download.html??br> ;
allaire jrun.

 jrun 是一个servlet和jsp引擎,它可以集成到netscape enterprise或fasttrack server、iis、microsoft personal web server、版本较低的apache、o´eilly的website或者starnine web star。最多支持5个并发连接的限制版本是免费的,商业版本中不存在这个限制,而且增加了远程管理控制台之类的功能?咛迩氩渭 ?http://www.allaire.com/products/jrun/ 。

new atlanta 的servletexec

 servletexec 是一个快速的servlet和jsp引擎,它可以集成到大多数流行的web服务器,支持平台包括solaris、windows、macos、hp-ux 和linux。servletexec可以免费下载和使用,但许多高级功能和管理工具只有在购买了许可之后才可以使用。new atlanta还提供一个免费的servlet调试器,该调试器可以在许多流行的java ide下工作?咛迩氩渭 ?http://newatlanta.com/ 。

gefion的litewebserver (lws)

 lws 是一个支持servlet 2 .2和jsp 1.1的免费小型web服务器。 gefion还有一个免费的waicoolrunner插件,利用该插件可以为netscape fasttrack和enterprise server增加servlet 2.2和jsp 1.1支持?咛迩氩渭 ?http://www.gefionsoftware.com/ 。

sun的java web server.

 该服务器全部用java写成,而且是首先提供servlet 2.1和jsp 1.0规范完整支持的web服务器之一。虽然sun现在已转向netscape/i-planet server,不再发展java web server,但它仍旧是一个广受欢迎的servlet、jsp学习平台。要得到免费试用版本,请访问http: //www.sun.com/software/jwebserver/try/。

扫描关注微信公众号