首页 > 开发 > JSP > 正文

Java Servlet 和 JSP教程(1)

2020-02-05 13:35:55
字体:
来源:转载
供稿:网友
  • 本文来源于网页设计爱好者web开发社区http://www.html.org.cn收集整理,欢迎访问。
  •   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不能访问服务器端资源,比如数据库、目录信息等等。

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