一个开发人员眼中的JSP技术(上)

(作者:天译编译 2000年12月01日 14:26)

JavaServerTM Pages(JSP)技术为我们提供了一种建立动态网页的简单方法,而且也简化了构造web程序的工作。本文从一个开发人员的角度对JSP技术做了一个全面介绍(并提供了一些JSP实例程序)。
前言
JavaServer Pages技术可以让web开发人员和设计人员非常容易的创建和维护动态网页,特别是目前的商业系统。作为JavaTM技术的一部分,JSP能够快速开发出基于web、独立于平台的应用程序。JSP 把用户界面从系统内容中分离开来,使得设计人员能够在不改变底层动态内容的前提下改变整个网页布局。
那么什么是JavaServer Page呢?简单的说,一个JSP网页就是在HTML网页中包含了能够生成动态内容的可执行应用程序代码。此应用程序可能包含JavaBeanTM,JDBCTM对象,Enterprise Java BeanTM (EJB)和Remote Method Invocation (RMI)对象,所有的部分都可以非常容易的从JSP网页上访问到。例如,一个JSP网页可以包含 HTML代码所显示的静态文本和图像,也可以调用一个JDBC对象来访问数据库;当网页显示到用户界面上以后,它将包含静态HTML内容和从数据库中找到相应的动态信息。
  在JSP网页中,要把用户界面和应用程序分开可以考虑在网页设计人员和开发人员之间执行一个非常方便的授权任务。它也允许开发人员去建立灵活的代码,从而非常容易的进行更新和重复利用。由于JSP网页能够根据需要自动进行编译,web设计人员无须重新编译应用程序逻辑就可以改变表述代码。这也使得JSP与Java servlet(它是JavaSever Pages功能的扩展)相比成为一种可以更灵活生成动态web内容的方法。

JSP和Servlet
  如果你已经用过Java servlet,那么你就会知道servlet可以让你建立动态生成的网页,而网页中包含有从服务器方的Java对象中所获得的数据。但是你也得知道servlet 生成网页的方法就是在Java类中嵌入HTML标签和表述代码。这就意味着改变表述代码需要修改和重新编译servlet源文件。因为设计HTML页面的设计人员可能与编写servlet代码的开发人员不是同一个人,更新基于servlet的web应用程序就成了一件非常棘手的事情。

  Enter JavaServer Page是Servlet API的一个扩展。事实上,JSP网页在编译成servlet之前也可以使用,所以它们也具有servlet的所有优势,包括访问Java API。由于JSP 是嵌入到servlet中关于应用程序的一般表述代码,所以他们能够被看成一种“彻底”的servlet。

  JSP网页主要提供了一种建立servlet的高水平方法,它还带来了其他的优点。即使你已经为web应用程序编写了servlet,使用JSP仍然有很多优势:

  JSP网页可以非常容易的与静态模板结合,包括HTML 或XML 片段,以及生成动态内容的代码。

  JSP网页可以在被请求的时候动态的编译成servlet,所以网页的设计人员可以非常容易的对表述代码进行更新。如果需要的话,JSP网页还可以进行预编译。

  为了调用JavaBean组件,JSP标签可以完全管理这些组件,避免网页设计人员复杂化应用程序。

  开发人员可以提供定制化的JSP标签库。

  网页设计人员能够改变和编辑网页的固定模板部分而不影响应用程序。同样,开发人员也无须一个个编辑页面而只须对组件进行合理的改变。

  通常,JSP允许开发人员向许多网页设计人员分发功能性应用程序。这些设计人员也不必知道Java编程语言或任何servlet代码,所以他们能够集中精力去编写HTML代码,而编程人员就可以集中精力去建立对象和应用程序。

建立JSP页面
  粗略看来,JSP网页和HTML (或XML)网页非常相似——都包含用标签封装的文本(在“<>”之间被定义)。当HTML标签被用户的浏览器处理以显示网页的时候,JSP标签能够通过web服务器的处理来生成动态内容。这些JSP标签能够定义个别的操作,比如说用一个方法来调用JavaBean,或者包含标准的Java代码块(也就是所谓的scriptlet),这些代码块能够在网页被访问的时候被执行。

  为了了解它们如何使用,下面我们介绍了一个JSP网页的简单例子,在这个JSP网页中包含了静态HTML内容和从JavaBean生成的动态数据。当用户访问这个网页的时候,它可以显示当前的日期,并根据当前的时间增加相应的问候语(例如“早上好”和“下午好”)。为简单起见,JSP标签显示在块中:

  

  

  

Welcome

  

Today is

  

  

      
  • Day:

      

  • Year:

      

  

  

  
  if (time == Calendar.AM) {

  %>

  早上好

  
  }

  else {

  %>

  下午好

  
  }

  %>

  

  

  上面的JSP例子是不是很简单?我们在JSP网页中使用了几个不同的组件。这些组件包括下面的内容:

  JSP action (或JSP标签)使用了多种函数并扩展了JSP的功能。JSP action使用的是一种类似XML的语法,并且被用来处理JavaBean组件。在上面的例子中,jsp:useBean action初始化了一个JavaBean ,JavaBean将在网页的后面部分被用到:

  

  如果在网页中需要获得和设置这个Bean的属性,另一个JSP action将被给出,使用的是下面的语法:

  

  

  当网页被编译成一个servlet的时候,Directive将被JSP引擎处理。Directive被用来设置页面级的指令、从外部文件插入数据以及制定定制的标签库。Directive被定义在之间。 在上面的例子中,Directive定义了页面所使用的语言(Java),为了关联Java类需要植入代码并指定一个将要插入页面底部的HTML文件内容:

  

  

  声明与Java中的变量声明相似,它也是为了后面表达式或scriptlet的需要来定义变量。声明被定义在之间。在上面的例子中,“int”声明并给出了一个当前时间的相应值 (AM 或 PM):

  

  表达式可以是变量或常量,它插在由web服务器所返回的数据里,并用来定义。在上面的例子中,表达式将调用JavaBean组件并在页面中插入结果数据:

  

  

  Scriptlet将作为一个Java代码块植入JSP页面中。Scriptlet代码被一一插入由页面所产生的servlet中,它被定义在之间。上面例子中的scriptlet可以根据当前用户产生相应的时间和问候语:

  
  if (time == Calendar.AM) {

  %>

  早上好

  
  }

  else {

  %>

  下午好

  
  }

  %>

  注释部分和HTML的注释相似,当在执行的时候JSP引擎将去掉对注释的解释。这就意味着JSP注释并不返回到用户的浏览器中。不象HTML注释被定义在标签之间,JSP注释被定义在之间。例如:

  

(0)

相关推荐

  • 一个开发人员眼中的JSP技术(上)

    (作者:天译编译 2000年12月01日 14:26) JavaServerTM Pages(JSP)技术为我们提供了一种建立动态网页的简单方法,而且也简化了构造web程序的工作.本文从一个开发人员的角度对JSP技术做了一个全面介绍(并提供了一些JSP实例程序). 前言 JavaServer Pages技术可以让web开发人员和设计人员非常容易的创建和维护动态网页,特别是目前的商业系统.作为JavaTM技术的一部分,JSP能够快速开发出基于web.独立于平台的应用程序.JSP 把用户界面从系统内

  • 一个开发人员眼中的JSP技术(下)

    使用定制化的标签 尽管你可以在JSP页面中植入Java代码并在服务器方执行,但是,JSP也支持使用定制标签来插入动态内容,它有一种机制可以让你在JSP页面中插入你自己的.与HTML类似的标签.换句话说,你的JSP网页能够使用插入Java代码的简单标签语法产生动态的内容.但定制标签的用处不是很大. 创建一个定制标签比在JSP网页中使用简单的scriptlet要复杂得多,因为定制标签需要用几个步骤来把你的Java组件和JSP代码连接起来.不过,定制标签在分发和重复使用的时候就非常简单了.对定制标签的

  • Java开发人员需知的十大戒律

    本文讲述了Java开发人员需知的十大戒律.分享给大家供大家参考,具体如下: 作为一个Java开发人员提高自己代码的质量,可维护性,是个恒久不变的话题,网上看到这篇文章,拿来自勉. 对Java开发者来说,有许多的标准和最佳实践.本文列举了每一个开发人员必须遵从的十大基本法则:如果有了可以遵从的规则而不遵从,那么将导致的是十分悲惨的结局. 1. 在你的代码里加入注释 每个人都知道这点,但不知何故忘记了遵守.算一算有多少次你"忘记"了添加注释?这是事实:注释对程序在功能上没有实质的贡献.但是

  • 使用JSP技术实现一个简单的在线测试系统的实例详解

    1.登陆界面 实现: 本界面由三部分构成,Footer.jsp,Index.jsp,Header.jsp Header.jsp <center> <h2>在线测试系统</h2> <p> <a href="Index.jsp" rel="external nofollow" >登录</a> | <a href="test.jsp" rel="external n

  • JSP技术生成动态web页面

    随着WEB技术的发展,WEB内容从一些静态的页到内容丰富的动态页.对于广大WEB开发人员来讲动态页面的生成是一个挑战.有许多的方法来试图解决这个问题,如plug-in技术及基于服务器端的APIs等方法,但存在的一个问题是这些方法是针对某个特定的web服务器,如Microsoft提供的ASP技术就只针对它的IIS及Personal web服务器. 目前用于生成动态网页较为流行的方法有CGI.PHP及JavaServer Page(JSP)技术等.其中:CGI通过访问其它应用程序来获取信息并返回给浏

  • JSP技术实现RSS订阅功能的示例

    RSS也叫聚合RSS是在线共享内容的一种简易方式(也叫聚合内容,Really Simple Syndication).通常在时效性比较强的内容上使用RSS订阅能更快速获取信息,网站提供RSS输出,有利于让用户获取网站内容的最新更新.同时也是医学.物理学.数学等学科专有名词的英文缩写简称. 最初的RSS要追溯到1995年,当Ramanathan V. Guha和其他在苹果电脑公司的高级技术组开发了一个测试的内容框架.更多有关RSS的资料可查看这里,下面我们来为我们的JSP网站生成RSS. RSS用

  • 分享下网站开发人员应该知道的61件事

    不出意料地,他得到了一大堆回答. 通常情况下,你需要把所有人的发言从头到尾读一遍.但是,Stack Overflow有一个很贴心的设计,它允许在问题下方开设一个wiki区,让所有人共同编辑一个最佳答案.于是,就有了下面这篇文章,一共总结出六个方面共计61条"网站开发须知". 我发现,这种概述性的问题,最适合这种集合群智.头脑风暴式的回答方式了.这也是我第一次觉得,Stack Overflow做到了Wikipedia做不到的事.(难怪它最近挤进了全美前400大网站.) 在我的印象中,关于

  • JSP技术简介

    一. JSP 技术概述 在 Sun 正式发布 JSP(JavaServer Pages) 之后,这种新的 Web 应用开发技术很快引起了人们的关注. JSP 为创建高度动态的 Web 应用提供了一个独特的开发环境.按照 Sun 的说法, JSP 能够适应市场上包括 Apache WebServer . IIS4.0 在内的 85% 的服务器产品.即使您对 ASP "一往情深",我们认为,关注 JSP 的发展仍旧很有必要. ㈠ JSP 与 ASP 的简单比较 JSP 与 Microsof

  • 开发人员需要知道的东西杂谈

    鉴于经常看到很多傻傻的问题,比如xx语言干什么用的,xxx 语言是不是落伍了?(不过说实在的,这些问题初学者都会有.) 我在这里说说开发人员应该知道的一些东西.但是这些只是我在平日里看到和想到的.难免有所偏差,请见谅. 软件开发,是一个综合性的活计.软件开发,并不仅仅是编写代码.学会了用c 这些编程语言进行编程只是第一步,一个最最基本要求. 其他要的东西还多着呢.在我看来,程序员大致可以分为两类.当一个工作任务分配到程序员身上时,一种程序员知道为什么要这样去做.另外一种则知道怎么去做完这个工作.

  • 开发人员为什么必须要了解数据库锁详解

    1.锁? 1.1何为锁 锁在现实中的意义为:封闭的器物,以钥匙或暗码开启.在计算机中的锁一般用来管理对共享资源的并发访问,比如我们java同学熟悉的Lock,synchronized等都是我们常见的锁.当然在我们的数据库中也有锁用来控制资源的并发访问,这也是数据库和文件系统的区别之一. 1.2为什么要懂数据库锁? 通常来说对于一般的开发人员,在使用数据库的时候一般懂点DQL(select),DML(insert,update,delete)就够了. 小明是一个刚刚毕业在互联网公司工作的Java开

随机推荐