大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> JSP专区 -> 也谈JSP与XML的交互

也谈JSP与XML的交互

时间: 2021-07-31 作者:daque

运用javaserver pages有三种各别的本领用来处置xml文书档案,每种本领都利于于普及辨别页面代码与xml数据的程度,利于于简化开拓网页的搀杂度而且革新普及组件与页面代码的可重用性。   javaserver pages ( javascript/" target="_blank">jsp)和xml是sun的j2ee的两个至关重要的组件。 javascript/" target="_blank">jsp是用来创造运用步调效劳器端步调的灵验东西,而存户不妨是一个欣赏器,一个摆设或其它的运用步调。 你不妨运用xml刻画数据并在接洽效劳器与体例的其他局部之间传播。 即使你提防商量web效劳的笼统观念的话,javascript/" target="_blank">jsp不妨被觉得是实行本领而xml则是数据封装和动静传递本领。 javascript/" target="_blank">jsp页面不妨经过三种办法运用xml:径直运用xml文献,运用javabeans来实行xml处置大概经过标志库运用xml。  一、径直运用xml  咱们不妨在javascript/" target="_blank">jsp页面市直接运用xml,这要分为二类:  1. javascript/" target="_blank">jsp不妨读取xml文献而且鉴于那些数据执动作作。比方:一运用步调不妨读取具备某些一定构造的数据的xml文献。   2. javascript/" target="_blank">jsp不妨创造xml文献以发送数据到存户步调或其它的运用步调。 javascript/" target="_blank">jsp不妨变换xml文献,这个变幻不妨是交给xslt处置,由javascript/" target="_blank">jsp动作遏制器,大概经过非xslt处置计划来实行。 在这两种情景下,javascript/" target="_blank">jsp的效率都是读取xml文献,变换它并天生一个输入。   由于javascript/" target="_blank">jsp包括内嵌的java步调,以是它不妨径直地挪用一个领会步调来读/写xml数据。 这利害常不对理的本领,由于数据和代码论理并不许很好的被分摆脱。 其余,如许的步调也很难读得懂。 以是,底下我将引见第二本领:运用javabeans。  二、运用javabeans   javascript/" target="_blank">jsp不妨经过<jsp:usebean>标志与javabeans精细的调整起来。 底下的步调片断演示了怎样运用在javascript/" target="_blank">jsp页面中的一个javabean来树立并获得属性。<jsp:usebean id="cb" scope="session" class="xmlrep.customer" /><jsp:setproperty name="cb" property="id" value="45" /><b> first name is: </b><%=cb.getfname() %><p><b> last name is: .</b><%= cb.getlname() %>

  javascript/" target="_blank">jsp与javabeans调整的特性即是不妨机动把超文本标记谈话的表单位素翻译成javabean属性。 即使有一个html表单而且想让它向javabean提交表单实质,你不妨写底下的代码:<jsp:setproperty name="cb" property="*" />

  name属性包括javascript/" target="_blank">jsp页面仍旧援用bean的值。 前方<jsp:usebean>标志树立称呼为" cb "。 与树立独立的bean属性各别,你不妨运用对号来标记"十足的"属性。 javascript/" target="_blank">jsp页面机动地映照html表单值为同名的bean属性。 即使你读取每个html表单位素,而后挪用相映属性的bean树立本领,那么截止也将是沟通的。  不妨看到,类xml的标志承诺javascript/" target="_blank">jsp页面考察javabeans。 咱们经过尽大概多的把封装的代码变化成可重用组件(javabeans),就不妨把javascript/" target="_blank">jsp页面中代码优化到最小的水平。 你不妨运用通用的语法领会步调,像xerces大概jaxpi,在独立的javabeans里与xml文献交互效率--而且你不妨在不变换javascript/" target="_blank">jsp页面包车型的士情景下变换领会步调。 其余,beans还不妨运用xslt来实行xml文献的变换。  运用javascript/" target="_blank">jsp和javabeans来实行的那些笼统的举措比径直在javascript/" target="_blank">jsp页面中插入原始的java步调要好得多,然而你仍旧须要熟习java步调,再不随时变换javascript/" target="_blank">jsp页面。 运用步调的普遍性与层次性依附javabeans协作创造一个一致的输入截止的是非水平。 比方,bean中的缺点大概会形成所有xml输入失效。 依附beans指定资源的本领,大概同声带来实行本能的题目。  三、经过标志库javascript/" target="_blank">jsp与xml交互  这也即是在前文中中心提到的,然而由于它简直太要害了,以是在正文中我必需也要提到。标志库不妨设置出此刻javascript/" target="_blank">jsp页面中的动作类xml元素的自设置标签,不妨把一定的java代码与每个标志都关系起来。 比方,假设你不妨考察一个气象情景数据库,并且你须要输入此刻的气象情景。 那么,你不妨在javascript/" target="_blank">jsp中插入jdbc步调代码径直查问数据库(固然这并不是一个好的采用),把那些代码封装到一个javabean内,大概把它包装成一个标志库。 运用结果一个采用,你的javascript/" target="_blank">jsp页面内的步调代码看上去就像:<%@taglib uri="the tld file" prefix="foo" %>current weather is <foo:weather/>

  提防在上述步调代码中看不就任何java代码的形迹。 动作一个页面安排职员,你运用一种熟习的语法就像<foo:weather/>,那些与其它的任何标志看上去特殊一致。 在页面中包括此刻的气象情景的html字符串的场合插入它。  标志库有一个关系的xml方法的刻画符文献,名叫tag library descriptor(标志库刻画符,tld)。 在tld文献中的每个标志都有一个条件,囊括它的称呼,本子和其它的任选消息。 在javascript/" target="_blank">jsp页面内,你不妨用" <%@_taglib prefix = " foo " %> "训令指定tld文献。 属性" prefix "用来指定一个前缀,用来在javascript/" target="_blank">jsp页面内运用一定的库来援用任何标志。 那干什么咱们要运用标志<foo:weather/>而不只仅是<weather/>。 tld文献的透彻场所依附于正在运用的运用步调效劳器。  一个标志库标志不妨包办为了实行这段步调论理的相映的java步调代码。 每个标志都十分于一个沟通称呼的java类。 这个类必需实行tagsupport接口,包括捕捉事变触发器本领动作处置这个页面包车型的士javascript/" target="_blank">jsp引擎。 当它第一次遇到这个标志的功夫,引擎就会挪用dostarttag ()本领。 不妨使这个本领为空大概当须要的功夫才实行运用步调论理。 当该本领归来skip_body时,那么引擎跳过这个标志体。 当它归来eval_body_include时,引擎将会处置这个标志以及它的子标志。 一致地,javascript/" target="_blank">jsp引擎在领会结束束标志之后就会挪用doendtag ()本领。 doafterbody ()本领让你不妨在引擎处置元素体之后执动作作,然而必需在doendtag ()本领效率之前。 底下即是实行气象情景的weather类的一个样品步调代码:import javax.servlet.jsp.*;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,javascript/" target="_blank">jsp读取器挪动到标志的结束。  最大略的运用javascript/" target="_blank">jsp和标志库的本领即是运用apache tomcat引擎。 这个引擎也充任servlet和javascript/" target="_blank">jsp运用步调接口的援用实行。  当运用标志库时,javascript/" target="_blank">jsp页面看上去就特殊像xml文献了。 当javascript/" target="_blank">jsp页面被处置时,引擎实行与标志关系联的步调代码(本质上,开始挪用javascript/" target="_blank">jsp引擎把javascript/" target="_blank">jsp页面翻译成一个servlet,而后再编写翻译servlet。 与标志库关系联的本领都被包括在servlet中。),一个熟习xml的人就不妨安排并运用形形色色的页面构造举行考查,而不用变换任何java步调代码。固然,代码与数据的辨别的水平仍旧重要依附标志库元素安排的是非水平。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.