b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

JSP + XML框架网站示例

电脑杂谈  发布时间:2020-07-12 06:17:30  来源:网络整理

如何用网页打开jsp_jsp网页怎么打开_jsp网页模板

XML(可扩展标记语言)可能看起来像某种W3C标准-现在没有真正的影响,即使以后会派上用场,也要等很长时间. 但实际上,它现已被应用. 因此,在开始使用XML之前,请不要等待XML添加到您喜欢的HTML编辑器中. 现在,它可以解决各种内部问题和B2B系统问题.

在Sparks.com,我们使用XML标准化从Java对象到HTML数据显示的不同系统之间的数据表示.

特别重要的一点是,我们发现,只要标准化基于非常基本的XML结构,共享和操作数据就变得更加容易. 在此过程中,我们发现了许多使用XML的有效方法. 下面详细介绍我们当前的应用程序.

标准化

在使用XML之前,请创建与您要使用的信息不同的XML数据格式.

生成动态XML

从生成HTML并不是什么新鲜事,但是生成XML却很新. 这里我们介绍具体的生成步骤.

使用XSL作为模板语言

XSL(可扩展样式表语言)是定义XML数据显示格式的好方法. 如果将其编写为多个静态模板,将会更加有效.

生成HTML

XML加XSL等于HTML. 这听起来可能是错误的,但是用户在HTML页面上看到的实际上是XML和XSL的综合效果.

I. 标准化

XML的强大之处在于其灵活性. 不幸的是,有时它太灵活了,以至于您将面临空白页,担心如何解决该问题.

在任何XML项目中,第一步都是创建标准数据格式. 为此,您必须做出以下决定:

&&&

识别数据:

由于没有标准的XML格式,开发人员可以自由地开发自己的格式. 但是,如果您的格式只能被一个应用程序识别,则只能运行此程序以使用该格式. 如果还有其他程序可以读取您的XML格式,那么显然会更有帮助. 如果修改了XML格式

更改后,使用它的系统可能也需要修改,因此您应该构建尽可能完整的格式. 由于大多数系统都会忽略无法识别的标签,因此更改XML格式的最安全方法是添加标签,而不是对其进行修改.

点击此处查看XML数据格式示例

在Sparks.com,我们查看了不同产品展示所需的所有产品数据. 尽管并非所有页面都使用所有数据,但是我们为所有数据开发了非常完整的XML数据格式. 例如,我们的产品详细信息页面显示的数据比产品浏览页面更多. 但是,在这两种情况下,我们仍然使用相同的数据格式,因为每个页面的XSL模板仅使用其所需的字段.

是否使用DTD

在Sparks.com,我们使用组织良好的XML而不是正确的XML,因为前者不需要DTD. DTD在用户单击和查看页面之间添加了一个处理层. 我们发现该层需要太多处理. 当然,在与其他公司进行XML格式的通信时,最好使用DTD. 因为DTD可以确保发送和接收时数据结构正确.

选择解析引擎

有几种可用的解析引擎. 您选择哪一个几乎完全取决于您的应用程序需求. 如果您决定使用DTD,则此解析引擎必须使您的XML能够被DTD验证. 您可以将验证放在另一个过程中,但这会影响性能.

SAX和DOM是两个基本的分析模型. SAX基于事件,因此在解析XML时jsp网页模板,会将事件发送到引擎. 接下来,事件与输出文件同步. DOM解析引擎为动态XML数据和XSL样式表建立了分层的树结构. 通过随机访问DOM树,可以提供XSL样式表确定的XML数据. 关于SAX模型的争论主要集中在DOM结构内存的过度减少和XSL样式表解析时间的加速上.

jsp网页怎么打开_如何用网页打开jsp_jsp网页模板

但是,我们发现许多使用SAX的系统尚未充分利用其功能. 这些系统使用它来构建DOM结构并通过DOM结构发送事件. 这样,必须在处理任何XML之前从样式表构建DOM,这样会降低性能.

第二,生成动态XML

建立XML格式后,我们需要一种从动态迁移它的方法.

生成XML文档相对简单,因为它只需要一个可以处理字符串的系统. 我们已经使用Java Servlet,Enterprise JavaBean服务器,JDBC和RDBMS(关系管理系统)建立了一个系统.

&&&&

(有关XSL应用程序的其他信息,请参考XSL作为模板语言. )

生成XML的示例

在Java中创建XML文档字符串的实际代码可以分为几种方法和类.

开始XML生成过程的代码放在EJB方法中. 该实例将立即创建一个StringBuffer来存储生成的XML字符串.

StringBuffer xml = new StringBuffer();

xml.append(XmlUtils.beginDocument(“ / browse_find / browse.xsl”,“浏览”,请求));

xml.append(product.toXml());

xml.append(XmlUtils.endDocument(“ browse”);

out.print(xml.toString());

以下三个xml.append()参数本身就是对其他方法的调用.

生成文件头

第一个附加方法调用XmlUtils类以生成XML文件头. 我们的Java Servlet中的代码如下:

公共静态字符串beginDocument(字符串样式表,字符串页面)

{

StringBuffer xml = new StringBuffer();

xml.append(“ <?xml version =” 1.0“?>”)

.append(“ <?xml-stylesheet href =”“)

.append(stylesheet).append(“”“)

.append(“ type =” text / xsl“?>”);

xml.append(“ <”). append(page).append(“>”);

jsp网页怎么打开_如何用网页打开jsp_jsp网页模板

返回xml.toString();

}

此代码生成XML文件头. <?xml>标记将此文件定义为支持1.0版的XML文件. 第二行代码指向正确的样式表的位置以显示数据. 最后包括项目级标签(在此示例中为). 在文件末尾,仅需关闭标记.

<?xml version =“ 1.0”?> <?xml-stylesheet href =“ / browse_find / browse.xsl” type =“ text / xsl”?>

填写产品信息

完成文件头后,控制方法将调用Java对象以生成其XML. 在这种情况下,将调用产品对象. 产品对象使用两种方法来生成其XML表示形式. 第一种方法toXML()通过生成标签来创建产品节点. 然后,它调用internalXML(),以便它可以提供产品XML所需的内容. internalXML()是一系列StringBuffer.append()调用. StringBuffer也将转换为字符串,并返回到控制方法.

公共字符串toXml()

{

StringBuffer xml =新的StringBuffer(“ ”);

xml.append(internalXml());

xml.append(“ ”);

返回xml.toString();

}

公共字符串internalXml()

{

StringBuffer xml =新

StringBuffer(“”)

.append(productType).append(“”);

xml.append(“”).append(idValue.trim())

.append(“”);

xml.append(“”).append(idName.trim())

.append(“”);

xml.append(“”).append(page.trim())

.append(“”);

xml.append(“”).append(金额).append(“”);

jsp网页怎么打开_jsp网页模板_如何用网页打开jsp

xml.append(“”).append(供应商).append(“”);

xml.append(“”);

xml.append(“”).append(pubDesc).append(“”);

xml.append(“”).append(venDesc).append(“”;

返回xml.toString();

}

关闭文件

最后,调用XMLUtils.endDocument()方法. 此调用关闭XML标记(在这种情况下),最后完成结构良好的XML文件. 控制方法中的整个StringBuffer也会转换为字符串,并返回给处理初始HTTP请求的servlet.

三,使用XSL作为模板语言

为了获得HTML输出,我们将生成的XML文件与控制XML数据表示方式的XSL模板结合在一起. 我们的XSL模板包含精心组织的XSL和HTML标记.

开始构建模板

我们的XSL模板的开头类似于以下代码. 代码的第一行是必需的代码,它将此文件定义为XSL样式表. xmlns: xsl =该属性引用此文件中使用的XML名称空间,而version =属性定义该名称空间的版本号. 在文件末尾jsp网页模板,我们关闭标签.

开头的第二行代码确定XSL模板模式. Match属性是必需的,这里指向XML标签. 在我们的系统中,标记包含标记,该标记允许XSL模板访问标记中嵌入的产品信息. 再一次,我们必须关闭文件末尾的标记.

接下来,让我们看一下组织良好的HTML. 由于它将由XML解析引擎处理,因此它必须符合组织良好的XML的所有规则. 本质上,这意味着所有开始标签必须具有相应的结束标签. 例如,

通常没有关闭的标签必须用

关闭

.

version =“ 1.0”>

购物袋/调整数量</ title></p> <p></ head></p> <p><body bgcolor =“</p> <p><img src='http://www.szthks.com/localimg/687474703a2f2f6777312e616c6963646e2e636f6d2f62616f2f75706c6f616465642f69352f543169385046466c785858585858585858585f2121302d6974656d5f7069632e6a7067.jpg' alt='jsp网页模板_如何用网页打开jsp_jsp网页怎么打开'/></p> <p></ xsl: template></p> <p></ xsl: stylesheet></p> <p>在模板的主体中,有许多XSL标记用于提供数据表示的逻辑. 以下是这两个常用标签的说明.</p> <p>选择</p> <p>The</p> <p><xsl: choose>标记类似于传统编程语言中if-then-else结构的开头. 在XSL中,choice标签指示在代码输入的部分中,分配将触发操作. 具有分配属性的<xsl: when>标记位于choice标记之后. 如果分配正确,将使用<xsl: when>的开始和结束标记之间的内容. 如果分配不正确,则使用<xsl: otherwise>的开始和结束标记之间的内容. 整个部分以</ xsl: choose>结尾.</p> <p>在此示例中,when标签将检查XML的数量标签. 如果数量标签包含值为true的错误属性,则数量标签将显示在下面列出的表格单元格中. 如果该属性的值不为true,则XSL将在else标签之间显示内容. 在下面的示例中,如果error属性不为true,则不会显示任何内容.</p> <p><xsl: choose></p> <p><xsl: when test =“ quantity [@ error ='true']”></p> <p><td bgcolor =“ src =” http://img.sparks.com/Images/I-Catalog/sparks_images/sparks_ui/clearpixel.gif“ /> </ td></p> <p><td valign =“ top” bgcolor =“ <font face =” Verdana,Arial“ size =” 1“ color =” <b> *库存不足. 您的数量已相应调整. </ b> </ font></p> <p></ td></p> <p></ xsl: when></p> <p><xsl: otherwise></p> <p></ xsl: otherwise></p> <p></ xsl: choose></p> <p>对于每个人</p> <p>The</p> <p><xsl: for-each>标记可用于将相同的样式表应用于相似XML数据的多种情况. 对于我们来说,我们可以从中获取一系列产品信息,并将其统一设置在Web页面上. 这是一个示例:</p> <p><xsl: for-each select =“ package”></p> <p><xsl: apply-templates select =“ product” /></p> <p></ xsl: for-each></p> <p>当程序遇到标签时,for-each循环开始. 当程序遇到标签时,此循环将结束. 循环运行后,每次出现标签时都会应用此模板.</p> <p>四,生成HTML</p> <p>在将来的某个时候,浏览器将集成一个XML解析引擎. 在此之前,您可以将XML和XSL文件直接发送到浏览器,然后浏览器根据样式表中列出的规则显示XML数据. 但是,在此之前,开发人员必须在其服务器端系统中创建解析功能.</p> <p>在Sparks.com,我们已经在Java servlet中集成了XML解析器. 该解析器使用一种称为XSLT(XSL转换)的机制,根据XSL标记的指示将XML数据添加到XSL模板中.</p> <p>当我们的Java servlet处理HTTP请求时,该servlet检索动态生成的XML,然后将其传递给解析引擎. 根据XML文件中的指令,解析引擎将查找适当的XSL样式表. 解析器通过DOM结构创建一个HTML文件,然后将该文件传输给发出HTTP请求的用户.</p> <p>如果选择使用SAX模型,则解析器将通读XML源程序并为每个XML标签创建一个事件. 该事件对应于XML数据,最后根据XSL标签将数据插入样式表中.</p> <p><br />本文来自<a rel="home" href="http://www.pc-fly.com/" target="_blank">电脑杂谈</a>,转载请注明本文网址:<br />http://www.pc-fly.com/a/jisuanjixue/article-277343-1.html</p> </div> <ul class="page"></ul> <div class="arc_textad" style='margin-top:10px'></div> </div> </div> <div class='mod'> <div class="mod_title"><b>相关阅读</b></div> <div class='mod_content'> <ul class='arc_list dot'></ul> </div> </div> <div class='mod'> <div class='mod_title'><b>发表评论</b><span>  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论</span></div> <div class='editor'> <script src='/include/ckeditor/ckeditor.js?t=B8DJ5M3'></script> <script type="text/javascript">//<![CDATA[ CKEDITOR.config.ubb_smiley = {"高兴":"{s:1}","撇嘴":"{s:2}","抓狂":"{s:3}","汗":"{s:4}","惊恐":"{s:5}","奋斗":"{s:6}","疑问":"{s:7}","晕":"{s:8}","偷笑":"{s:9}","可爱":"{s:10}","疑惑":"{s:11}","酷":"{s:12}","暴汗":"{s:13}","呕吐":"{s:14}","大笑":"{s:15}","色":"{s:16}"} //]]></script> <textarea name="msg" rows="8" cols="60"></textarea> <script type="text/javascript">//<![CDATA[ CKEDITOR.replace('msg', {"extraPlugins":"dedepage,multipic,addon,bbcode","fontSize_sizes":"30\/30%;50\/50%;100\/100%;120\/120%;150\/150%;200\/200%;300\/300%","disableObjectResizing":"true","smiley_path":"\/images\/smiley\/","smiley_images":["1.gif","2.gif","3.gif","4.gif","5.gif","6.gif","7.gif","8.gif","9.gif","10.gif","11.gif","12.gif","13.gif","14.gif","15.gif","16.gif"],"smiley_descriptions":["高兴","撇嘴","抓狂","汗","惊恐","奋斗","疑问","晕","偷笑","可爱","疑惑","酷","暴汗","呕吐","大笑","色"],"toolbar":[["Source","-","Bold","Italic","Underline","-"],["FontSize","TextColor"],["Link","Unlink","Smiley"]],"height":100,"skin":"kama"}); //]]></script> </div> <button type='submit' class='submit right'>发表评论</button> <br/> <ul class='ds-comments'> <li class='ds-post clear' data-post-id=''> <div class='ds-post-self' data-post-id='17745416971' data-thread-id='17745416971' data-root-id='0' data-source='duoshuo'> <div class='ds-avatar left'><img src='/images/noavatar_default.png' alt='薛莹莹 '></div> <div class='ds-comment-body'> <div class='ds-comment-header'><span class='ds-user-name ' data-qqt-account=''>薛莹莹 </span></div> <p>强行驱离 </p> <div class='ds-comment-footer ds-comment-actions'> <span class='ds-time' datetime='2026-03-27 09:34:02' title='2026年03月27日 09:34:02'>2026年03月27日</span> <a class='ds-post-reply' href='javascript:void(0);'><i class='fa fa-reply fa-fw'></i></span>回复</a> <a class='ds-post-likes' href='javascript:void(0);'><i class='fa fa-heart fa-fw'></i>顶</a> <a class='ds-post-repost' href='javascript:void(0);'><i class='fa fa-share fa-fw'></i>转发</a> </div> </div> </div> </li> </ul> </div> </div> <div class='wrap246 right'> <div class='mod' style='height:250px'> <div class="mod_title"><b>每日福利</b></div> <div class='mod_content'> <div class='pic_list_2x2'> </div> </div> </div> <div class='mod'> <div class="mod_title"><b>热点图片</b></div> <div class='mod_content'> <div><a title="" id='focus_photo_link' href="" target="_blank"><img style="opacity: 1.1" id='focus_photo_pic' alt="拼命载入中..." src=""/></a></div> <div id='focus_photo_title'></div> <div id='focus_photo_page'></div> </div> <script> var photoPic = new Array(); var photoTitle = new Array(); var photoLink = new Array(); // photoPic.push("/uploads/allimg/20210613/1623513754475_0.jpeg"); photoPic.push("//www.pc-fly.com/images/defaultpic/5.jpg"); photoLink.push("/a/jisuanjixue/article-382403-1.html"); photoTitle.push("电脑中的声卡驱动怎么重"); // photoPic.push("/uploads/allimg/20210612/1623496204560_0.png"); photoPic.push("//www.pc-fly.com/images/defaultpic/5.jpg"); photoLink.push("/a/jisuanjixue/article-382349-1.html"); photoTitle.push("风林火山winxpSP3原版纯净装"); // photoPic.push("/uploads/allimg/20210612/1623492301891_0.png"); photoPic.push("//www.pc-fly.com/images/defaultpic/5.jpg"); photoLink.push("/a/jisuanjixue/article-382346-1.html"); photoTitle.push("风林火山xp纯净版最新免费"); // photoPic.push("/uploads/allimg/20210612/1623488556839_2.png"); photoPic.push("//www.pc-fly.com/images/defaultpic/5.jpg"); photoLink.push("/a/jisuanjixue/article-382334-1.html"); photoTitle.push("VisualStudio2019支持Windows10软"); // photoPic.push("/uploads/allimg/20210612/1623488459934_0.jpeg"); photoPic.push("//www.pc-fly.com/images/defaultpic/5.jpg"); photoLink.push("/a/jisuanjixue/article-382330-1.html"); photoTitle.push("Windows驱动程序工具包(WD"); // photoPic.push("/uploads/allimg/20210612/1623484973424_2.jpeg"); photoPic.push("//www.pc-fly.com/images/defaultpic/5.jpg"); photoLink.push("/a/jisuanjixue/article-382323-1.html"); photoTitle.push("win8系统显卡驱动安装失败"); // photoPic.push("/uploads/allimg/20210612/1623481273412_0.jpeg"); photoPic.push("//www.pc-fly.com/images/defaultpic/5.jpg"); photoLink.push("/a/jisuanjixue/article-382310-1.html"); photoTitle.push("Win10QQ对战平台打不开的解"); // photoPic.push("/uploads/allimg/20210612/1623477668984_0.jpeg"); photoPic.push("//www.pc-fly.com/images/defaultpic/5.jpg"); photoLink.push("/a/jisuanjixue/article-382301-1.html"); photoTitle.push("阿呼告诉你解决win10打不开"); // photoPic.push("/uploads/allimg/20210612/1623474178246_0.jpeg"); photoPic.push("//www.pc-fly.com/images/defaultpic/5.jpg"); photoLink.push("/a/jisuanjixue/article-382294-1.html"); photoTitle.push("解决win10打不开腾讯对战平"); // photoPic.push("/uploads/allimg/20210612/1623470632728_0.jpeg"); photoPic.push("//www.pc-fly.com/images/defaultpic/5.jpg"); photoLink.push("/a/jisuanjixue/article-382285-1.html"); photoTitle.push("在Win10系统下如何共享文件"); </script> <script src="/templets/itfly_skin/js/list_huandengpian.js"></script> </div> <div class='mod'> <div class="mod_title"><b>热点排行</b></div> <div class='mod_content'> <ul class='arc_list dot'> <li><a href="/a/jisuanjixue/article-1710-1.html" target="_blank">税审大师软件</a></li> <li><a href="/a/jisuanjixue/article-1151-1.html" target="_blank">剑灵14001_剑灵客户端14001错误代码怎么办 怎么解决</a></li> <li><a href="/a/jisuanjixue/article-1310-1.html" target="_blank">宽带连接错误651故障排除方法</a></li> <li><a href="/a/jisuanjixue/article-1001-1.html" target="_blank">[收藏]"Automation服务器不能创建对象" 的多种解决</a></li> <li><a href="/a/jisuanjixue/article-1472-1.html" target="_blank">jwgkvsq.vmx病毒清除方法(附jwgkvsq.vmx专杀工具)</a></li> <li><a href="/a/jisuanjixue/article-1417-1.html" target="_blank">c#如何获取dropdownlist1中对应的值</a></li> <li><a href="/a/jisuanjixue/article-1448-1.html" target="_blank">Intel首款45nm新旗舰QX9650超详细测试</a></li> <li><a href="/a/jisuanjixue/article-1687-1.html" target="_blank">罕见的故障 Win8桌面磁贴消失的解决</a></li> </ul> </div> </div> </div> </div> <div class="w960"> <div id='footer'> <a href='https://www.ucaiyun.com/' target="_blank">网站采集工具</a> | <a href='http://ecnuoy.cn/' target="_blank">网页游戏</a><BR/> Copyright <i class="fa fa-copyright fa-fw"></i> 电脑杂谈 http://www.pc-fly.com All Rights Reserved <br/> <span>免责声明:本站所有内容来自网络机器人整理发布,如您认为部分内容侵犯您的版权,请来信告知,本站核实后立即删除。</span> </div> </div> <script type='text/javascript' src='/templets/itfly_skin/js/dropdown.js'></script> <ul id="dropmenu1" class="dropMenu"> </ul><ul id="dropmenu2" class="dropMenu"> </ul><ul id="dropmenu7" class="dropMenu"> </ul><ul id="dropmenu5" class="dropMenu"> </ul><ul id="dropmenu6" class="dropMenu"> </ul><ul id="dropmenu8" class="dropMenu"> </ul><ul id="dropmenu4" class="dropMenu"> </ul><ul id="dropmenu9" class="dropMenu"> </ul><ul id="dropmenu10" class="dropMenu"> </ul><ul id="dropmenu3" class="dropMenu"> </ul><ul id="dropmenu11" class="dropMenu"> </ul> <script type="text/javascript">cssdropdown.startchrome("navMenu")</script> <script src='/templets/itfly_skin/js/tongji.js'></script> </div> <script type="text/javascript"> $(function() {$(".mod_content img").lazyload({threshold: 200});}); $(".mod_content img").each(function() { var $t = $(this); var image = new Image(); image.onload = function(){ if (this.width * this.height <= 36){ $t.css('display','none'); } }; image.onerror = function(){ $t.css('display','none'); }; image.src = $t.attr("src"); }); </script> <script language="javascript"> var nexturl='http://www.pc-fly.com/a/jisuanjixue/article-277355-1.html'; var preurl='http://www.pc-fly.com/a/jisuanjixue/article-277328-1.html'; if(nexturl=='http://www.pc-fly.com') nexturl=preurl; </script> </body> </html>