剖析JSP与XML的交互编程技巧下

2016-02-19 15:13 4 1 收藏

只要你有一台电脑或者手机,都能关注图老师为大家精心推荐的剖析JSP与XML的交互编程技巧下,手机电脑控们准备好了吗?一起看过来吧!

【 tulaoshi.com - Web开发 】

  三、通过标记库JSP与XML交互

  这也就是在前文中重点提到的,但是因为它实在太重要了,所以在本文中我必须也要提到。标记库可以定义出现在JSP页面中的作为类XML元素的自定义标签,可以把特定的Java代码与每个标记都关联起来。 例如,假定你可以访问一个天气情况数据库,而且你需要输出现在的天气状况。 那么,你可以在JSP中插入JDBC程序代码直接查询数据库(虽然这并不是一个好的选择),把这些代码封装到一个JavaBean内,或者把它包装成一个标记库。 使用最后一个选择,你的JSP页面内的程序代码看上去就像:

%@taglib uri="the TLD file" prefix="foo" %

  Current weather is foo:Weather/

  注意在上述程序代码中看不到任何Java代码的踪迹。 作为一个页面设计人员,你使用一种熟悉的语法就像 foo:weather/,这些与其它的任何标记看起来非常相似。 在页面中包含现在的天气状况的HTML字符串的地方插入它。

  标记库有一个关联的XML格式的描述符文件,名叫Tag Library Descriptor(标记库描述符,TLD)。 在TLD文件中的每个标记都有一个条目,包括它的名称,版本和其它的任选信息。 在JSP页面内,你可以用" %@_taglib prefix = " foo " % "指令指定TLD文件。 属性" prefix "用来指定一个前缀,用来在JSP页面内使用特定的库来引用任何标记。 那为什么我们要使用标记 foo:Weather/而不仅仅是 Weather/。 TLD文件的精确位置依赖于正在使用的应用程序服务器。

  一个标记库标记可以代替为了完成这段程序逻辑的相应的Java程序代码。 每个标记都相当于一个相同名称的Java类。 这个类必须实现TagSupport接口,包含捕获事件触发器方法作为处理这个页面的JSP引擎。 当它第一次遇到这个标记的时候,引擎就会调用doStartTag ()方法。 可以使这个方法为空或者当需要的时候才执行应用程序逻辑。 当该方法返回SKIP_BODY时,那么引擎跳过这个标记体。 当它返回EVAL_BODY_INCLUDE时,引擎将会处理这个标记以及它的子标记。 类似地,JSP引擎在分析了结束标记之后就会调用doEndTag ()方法。 doAfterBody ()方法让你可以在引擎处理元素体之后执行动作,但是必须在doEndTag ()方法作用之前。 下面就是实现天气状况的Weather类的一个样本程序代码:

  import javax.servlet.jsp.tagext.*;
  import java.io.*;
  public class Weather extends TagSupport {
  public int doStartTag() {
  try {
  JspWriter out = pageContext.getOut();
  out.print(" sunny and cloudy mixed with " +
  "rain and sunshine. ");
  } catch (IOException e) {
  System.out.println("Error " + e);
  }
  return (SKIP_BODY);
  }
  }

  当引擎遇到" somePrefix:Weather/ "标记的时候,它会在标记库内搜索一个同名的类。 如果doStartTag ()方法被实现的话(在本例中是这样的),它就会被调用。 这就使字符串包含适应显示的天气情况。 因为方法返回了SKIP_BODY,JSP读取器移动到标记的末尾。

  最简单的使用JSP和标记库的方法就是使用Apache Tomcat引擎。 这个引擎也充当Servlet和JSP应用程序接口的引用实现。

  当使用标记库时,JSP页面看上去就非常像XML文件了。 当JSP页面被处理时,引擎执行与标记相关联的程序代码(实际上,首先调用JSP引擎把JSP页面翻译成一个servlet,然后再编译servlet。 与标记库相关联的方法都被包含在servlet中。),一个熟悉XML的人就可以设计并使用各种各样的页面布局进行试验,而不必改变任何Java程序代码。当然,代码与数据的分离的程度还是主要依赖标记库元素设计的好坏程度。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  JavaServer Pages ( JSP)和XML是Sun的J2EE的两个至关紧要的组件。 JSP是用于创建应用程序服务器端程序的有效工具,而客户可以是一个浏览器,一个设备或其它的应用程序

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

来源:http://www.tulaoshi.com/n/20160219/1609175.html

延伸阅读
标签: Web开发
一、在JSP中访问JS返回的值: 问题: 代码如下: script language="javascript" !-- var str="123"; % String aa; % -- /script 怎么让这个JSP里的aa获得JAVASCRIPT中str的值???? 详细一点就是: 代码如下: script language="javascript" function returnValue(){ var myform=document.form1; var str=myform.text1.value; ...
  摘 要 本文较为详细地对Linux的Samba服务进行了剖析,内容涉及Samba的核心、语法、组成,以及 Samba的启动与停止。同时给出了定制Samba的几个技巧。 关键词 Samba,剖析,定制 1 引 言 Linux是一个优秀的网络操作系统,它可与多种网络集成。Linux系统的稳定性、可靠性受到了广大用户 的欢迎,在小型网...
标签: Web开发
XML 是标准扩展语言,是未来Web编程的标准,asp 是现在广为流传的web编程语言之一,能不能让他们两个联合起来发挥作用呢?豆腐在这里给大家提供一个很简单的例子关于XML和XSL限于篇幅和知识水平豆腐就不在这里献丑了下面首先来说说几个需要用到的文件的内容。 testXsl.xsl: ?xml version='1.0'? xsl:stylesheet xmlns:xsl="http...
前一段时间,我用java开发一个安装程序,适用于tomcat mysql构建的web环境。在开发的过程中遇到与写注册表,注册系统服务等问题用java本身很难解决,于是我想到用JNI。C与delphi两者开发JNI,我是从delphi转到java上来的,我选择了delphi。 用delphi开发JNI,首先从http://delphi-jedi.org 下载JNI.pas,把它加入到工程中就可以开发J...
标签: Web开发
这篇对 XML 和语义的讨论揭开了这个由 Uche Ogbuji 撰写的专栏的序幕,本专栏讨论了 XML 知识管理方面的问题,包括元数据、语义、资源描述结构 (RDF)、主题映射和自主主体。本专栏从实践的角度来剖析这个主题,因此它针对的读者是程序员,而不是针对理论家。 XML 编程思想这个新专栏将讨论 XML 和 知识体系结构 (KA) 的交汇处。知识体...

经验教程

30

收藏

70
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部