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 类:
insertCatchOfDay com.sun.CatchOfDayHandler
Queries menu database for the catch of the day。
meal
与定义属性的名称一样,标签库描述符也能够定义数据类型并指定其属性(无论是否需 要) ;在 Tag Handler 被执行之前,它允许 JSP 引擎去做某些错误检查。还有其他的信息,比 如说为了使用 JSP 创建工具,库名和版本号也可以包含在标签库中。 更多的例子 在下面的例子中, 第一个例子在 JSP 页面中使用了 HTTP 请求对象 (HttpServletRequest) 来判断用户浏览器的版本并从三个 HTML 页面中的一个中返回相应的内容:
注意:此页面无须声明或初始化 HTTP 请求对象就可以直接对它进行访问。请求和响应 (HttpServletResponse)对象都能够隐含地在 JSP 页面中使用。 servlet 一样, 页面能 和 JSP 够使用请求对象从 HTML 窗体中获得参数值。
Here are your current selections:
:
(no items selected)
在这个例子中,当每一个参数值都被读取以后,JavaBean 组件便
查询所需要的信息。在 JSP 网页中使用 Bean 这种方法可以容易地从数据库中返回动态 web 内容。 结论 如果你正在寻找一种能简便建立连接服务器方 Java 组件的 web 程序的方法,那么 JavaServer Page 正是你所需要的。除了 EJB,RMI,JDBC 和 JavaBean 外,分离 HTML 表述代 码和 web 程序,也使得 JSP 网页组织起来运行变得更容易了。事实上,由于 web 设计人员几 乎无须 Java 开发人员的帮助就可以建立 JSP 页面,所以你再也不同
担心创建 web 网页和写 HTML 代码了。