一个开发人员眼中的JSP技术(下)_JSP编程

使用定制化的标签
  尽管你可以在JSP页面中植入Java代码并在服务器方执行,但是,JSP也支持使用定制标签来插入动态内容,它有一种机制可以让你在JSP页面中插入你自己的、与HTML类似的标签。换句话说,你的JSP网页能够使用插入Java代码的简单标签语法产生动态的内容。但定制标签的用处不是很大。

  创建一个定制标签比在JSP网页中使用简单的scriptlet要复杂得多,因为定制标签需要用几个步骤来把你的Java组件和JSP代码连接起来。不过,定制标签在分发和重复使用的时候就非常简单了。对定制标签的支持将在JSP创建工具中实现。

  在下面的例子中产生动态内容的JSP网页就使用了定制标签。注意,在这个例子中我们不再需要引入Java类、声明变量或写任何Java代码:

  

  <%@ taglib uri="/tlds/menuDB.tld" prefix="menu" %>

  

Today's Menu

  
Lunch

  <%@ include file="lunch_menu.html" %>

  
Our Special of the Day

  

  

  从上面的语句中我们可以看出,这个页面明显比前面的scriptlet例子要简单许多,因为它没有包含初始化对象和执行相应的方法。但是JSP网页代码仅仅只是一部分;对于每一个定制标签,还包括下面的三个组件:

  (1)包含定制标签的网页,比如说,上面的代码片断中就使用了insertCatchOfDay 的定制标签。在使用定制标签之前,页面必须指定Taglib Directive来提供标签库描述符(对标签定义)的位置。当执行定制标签的时候,网页还有代表性的定义了一个和多个标签属性(比如在这个例子中的“meal”)来确定动态内容。

  (2)标签库描述符。它是一个定义了定制化标签并把它和Tag Handler连接起来的XML文件。一个标签库描述符包含了标签的不同属性,相关Tag Handler的名称(位置)以及JSP引擎需要处理定制标签的其他信息。

  (2)Tag Handler。 它是一个与定制标签联合执行操作的Java类。例如,在上面的insertCatchOfDay标签中,Tag Handler就是执行数据库查询得到相应菜单项的Java类。

  我们已经看到了一个使用定制标签的JSP网页,下面让我们来看一看另外的两个组件。

  Tag Handler

  tag handler是一个与servlet比较相似的Java类。但是servlet能够执行Servlet接口,还能够被HTML GET或POST请求所执行。tag handler也能够执行一个标签接口(javax.servlet.jsp.Tag)以及在定制标签被JSP引擎处理的时候执行。

  如果定制标签包含了属性,那么tag handler就必须定义这些属性以及每一个的get/set方法。例如,当定义上面insertCatchOfDay定制标签的tag handler的时候,我们必须定义“meal”属性和与它相关的get和set 方法:

  private String meal = null;

  public void setMeal(String s) {

  meal = s;

  }

  public String getMeal() {

  return meal;

  }

  Tag Library Descriptor

  如果你所有的时间都在处理Java技术而不知道关于 XML方面的东西,那么标签库描述符组件可能看起来会比较陌生。但是你也不需要担心,因为你不需要学习一门新的编程语言。标签库描述符仅仅使用与HTML相似的标签语法来定义定制标签的名字和属性,这更象定义一个对象。

  下面的标签库描述符定义了insertCatchOfDay标签。注意,这个文件定义了定制标签的名称,属性和相关的Tag Handler类:

  <? xml version="1.0" ?>

  

  

  insertCatchOfDay

  com.sun.CatchOfDayHandler

  

  Queries menu database for the catch of the day。

  

  

  meal

  

  

  

  与定义属性的名称一样,标签库描述符也能够定义数据类型并指定其属性(无论是否需要);在Tag Handler被执行之前,它允许JSP引擎去做某些错误检查。还有其他的信息,比如说为了使用JSP创建工具,库名和版本号也可以包含在标签库中。

更多的例子
  在下面的例子中,第一个例子在JSP页面中使用了HTTP请求对象 (HttpServletRequest) 来判断用户浏览器的版本并从三个HTML页面中的一个中返回相应的内容:

  

  

  

  

  

  
  agent = request.getHeader("User-Agent");

  if ( agent.startsWith("Mozilla/4.0") {

  %>

  

  

  
  }

  else if ( agent.startsWith("Mozilla/3.0") {

  %>

  

  

  
  }

  else {

  %>

  

  

  
  }

  %>

  

  

  注意:此页面无须声明或初始化HTTP请求对象就可以直接对åƒè¿›è¡Œè¿é—。请求和响应(HttpServletResponse)对象都能够隐含地在JSP 页面中使用。和servlet一样,JSP页面能够使用请求对象从HTML窗体中获得参数值。

  

  <%@ page language="java" info="Example JSP #2" %>

  

  

  <%@ include file="header.html" %>

  <?xml:namespace prefix = jsp />

  <%! String selections[], info; %>

  
Here are your current selections:

  <%

  

  selections = request.getParameterValues("items");

  if (selections != null) {

  %>

  •   <%

      for(int x = 0; x < selections.length; x++) {

      %>

  •   <%= selections[x] %> : <%= db.getInfo(selections[x]) %>

      <%

      }

      %>

<%

  }

  else {

  %>

  
(no items selected)

  <%

  }

  %>

  

  <%@ include file="footer.html" %>

  

  

  在这个例子中,当每一个参数值都被读取以后,JavaBean组件便查询所需要的信息。在JSP网页中使用Bean这种方法可以容易地从数据库中返回动态web内容。

结论
  如果你正在寻找一种能简便建立连接服务器方Java组件的web程序的方法,那么JavaServer Page正是你所需要的。除了EJB,RMI,JDBC和JavaBean外,分离HTML表述代码和web程序,也使得JSP网页组织起来运行变得更容易了。事实上,由于web设计人员几乎无须Java开发人员的帮助就可以建立JSP页面,所以你再也不同担心创建web网页和写HTML代码了。

  <全文完>

时间: 2024-10-01 11:30:50

一个开发人员眼中的JSP技术(下)_JSP编程的相关文章

一个开发人员眼中的JSP技术(上)_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代码连接起来.不过,定制标签在分发和重复使用的时候就非常简单了.对定制标签的

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

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

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

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

JSP技术简介_JSP编程

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

究竟什么是开发人员眼中最好的代码编辑器?

如果我们把不同的程序开发人员比作三国演义中的各路诸侯大将的话,那么代码编辑器绝对可以称之我们手中的神兵利器,不同类型的开发人员使用的"兵器"也大有 不同.好比兵器来说,没有绝对强的,也没有绝对好的,每一中兵器都有不同的优点和缺点,虽说俗话说的好,一寸长,一寸强,不过如果你没事去那都提着"关老 爷"的"青龙偃月刀"得瑟,貌似也不是很方便.那么对于我们这些开发人员来说,究竟什么样的代码编辑器是最好的呢? 究竟什么是开发人员眼中最好的代码编辑器? 在今

每位开发人员都应铭记的10句编程谚语

所谓谚语,就是用言简意赅.通俗易懂的方式传达人生箴言和普遍真理的话,它们能很好地帮助你处理生活和工作上的事情.也正因如此,我才整理了10句编程谚语,每位开发人员都应该铭记他们,武装自己. 1. 无风不起浪 别紧张,这也许只是一场消防演习 代码设计是否糟糕,从某些地方就可以看出来.比如: a. 超大类或超大函数 b. 大片被注释的代码 c. 逻辑重复 d. If/else嵌套过深 程序员们通常称它们作代码异味(Code Smell),但是就我个人认为"代码警报"这个名字更为合适一些,因为

JSP简明教程_JSP编程

一. 什么是JSP JSP(JavaServer Pages)是由Sun Microsystems公司倡导.许多公司参与一起建立的一种动态网页技术标准,其网址为http://www.javasoft.com/products/jsp.在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp).Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户.程序片

轻松使用JSP生成饼图_JSP编程

作者: BUILDER.COM JSP提供了很多简单实用的工具,其中包括从数据库中读出数据,发送数据,并能够把结果显示在一个饼状图形.现在让我们看看这一简单而实用的方法. 你所需要的东西  转自:动态网制作指南 www.knowsky.com 为了能正确运行这一文章相关的范例,你必须需要JDK 1.2或更高的版本.一个关系数据库管理系统.一个JSP网络服务器.我都是在Tomcat调试这些例子,同时我也使用了Sun Java 2 SDK发布的com.sun.image.codec.jpegclas