首页 > 开发 > JSP > 正文

JSP和Java Servlet的技术概述以及比较

2020-02-05 13:52:13
字体:
来源:转载
供稿:网友

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的话,要加上这部分功能也往往是免费的(或只需要极少的投资)。

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=http://www.blue1000.com/article/"account-settings.html">这里</a></small><p>页面的其余内容。.</body></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不能访问服务器端资源,比如数据库、目录信息等等。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表