时间:2014-01-29 来源:

JSP+XML构架网站的实例

XML(可扩展标记语言)看起来可能像某种W3C标准——现在没有什么实际影响网页外包接活,即使以后能派上用场,网页外包接活也是很久以后的事.但实际上,网页切图价格它现在已经得到了应用.所以,div+css制作我们使用XML来标准化从Java对象到HTML数据显示等不同系统之间的数据表示.

特别需要指出的是,兼职手机网页制作我们发现,html静态页面制作只要以非常基本的XML结构来实现标准化,web切图报价就可以更容易地共享和操作数据.在这一过程中,psd转html我们发现了使用XML的很多有效方法.下面详细介绍我们现在的应用情况.

标准化
在使用XML之前,html切图制作建立与你要使用的信息不同的XML数据格式.

生成动态XML
从数据库中生成HTML并不新鲜网页外包接活,但生成XML却很新鲜.这里我们介绍具体的生成步骤.

用XSL作为模板语言
XSL(可扩展样式表语言)是定义XML数据显示格式的好方法,网页外包接活如果写成几个静态模板会更有效.

生成HTML
XML加上XSL就等于HTML.这听起来似乎不对web前端制作,但用户所见的我们的HTML页面其实就是XML和XSL共同产生的效果.


一、标准化

XML的能力来自于它的灵活性.但不幸的是,web前端制作它有时太灵活了承接网页制作,以至于你会面对一个空白的页面,div前端切图发愁该怎么解决问题.

在任何XML的项目中web切图报价,第一步工作都是创建标准的数据格式.为此你要作出以下决定:

&&&
确定数据:
因为没有标准的XML格式,web切图报价开发者可以自由地开发自己的格式.然而符合w3c标准,如果你的格式只能被一个应用程序识别,符合w3c标准那么你只能运行这个程序来使用该格式.如果还有其他程序也能读懂你的XML格式网页外包接活,那显然会更有帮助.如果某个XML格式被修
改,jpg或psd转html则使用它的系统可能也需要被修改web前端制作,所以你应该建立尽可能完整的格式.因为大多数系统忽略它们无法识别的标签,web前端制作所以改变一个XML格式的最安全的方法是添加标签承接网页制作,我们查看了不同的产品展示需要的所有产品数据.尽管并不是所有的页面都使用全部数据web切图报价,但我们还是由此开发出适用于所有数据的非常完整的XML数据格式.例如,网站div+css我们的产品明细信息页面显示的数据要比产品浏览页面多.然而符合w3c标准,我们在这两种情况下仍然使用相同的数据格式,符合w3c标准因为每个页面的XSL模板都只使用它所需要的字段.

是否使用DTD
在Sparks.com,而不使用仅仅是正确的XML,因为前者不需要DTD.DTD在用户点击和看到页面之间加入了一个处理层.我们发现这一层需要太多的处理.当然,div+css制作在以XML格式与其他公司通信时承接网页制作,使用DTD还是很不错的.因为DTD能在发送和接受时能保证数据结构正确.

选择解析引擎
现在,兼职手机网页制作可以使用的解析引擎有好几个.选择哪一个几乎完全取决于你的应用需要.如果你决定使用DTD,那么这个解析引擎必须能使你的XML被DTD验证.你可以将验证另放到一个进程中,web切图报价但那样会影响性能.

SAX和DOM是两个基本的解析模型.SAX基于事件符合w3c标准,所以在XML被解析时,html切图制作事件被发送给引擎.接下来网页外包接活,事件与输出文件同步.DOM解析引擎为动态XML数据和XSL样式表建立层次树状结构.通过随机访问DOM树,网页外包接活可以提供XML数据web前端制作,就象由XSL样式表来决定一样.SAX模型上的争论主要集中于对DOM结构的内存降低过度和加快XSL样式表解析时间缩短方面.

然而,web前端制作我们发现使用SAX的很多系统并没有充分发挥它的能力.这些系统用它来建立DOM结构并通过DOM结构来发送事件.用这种方法承接网页制作,所以性能会下降.

二、生成动态XML

一旦建立了XML格式web切图报价,我们需要一种能够将其从数据库中动态移植的方法.

生成XML文档相对来说比较简单,web切图报价因为它只需要一个可以处理字符串的系统.我们建立了一个使用Java Servlet、Enterprise JavaBean server、JDBC和RDBMS(关系型数据库管理系统)的系统.

&&&&
(有关XSL应用的其他信息符合w3c标准,以便存储生成的XML字符串.

StringBuffer xml = new StringBuffer();
xml.append(XmlUtils.beginDocument("/browse_find/browse.xsl", request));
xml.append(product.toXml());
xml.append(XmlUtils.endDocument("browse");
out.print(xml.toString());


后面的三个xml.append()变元本身就是对其他方法的调用.
产生文件头
第一个附加方法调用XmlUtils类来产生XML文件头.我们的Java Servlet中的代码如下:

public static String beginDocument(String stylesheet, String page)
{
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("> ");
return xml.toString();
}

这段代码生成了XML文件头.<?xml>标签把本文件定义为支持1.0版本的XML文件.第二行代码指向用以显示数据的正确样式表的位置.最后包括进去的是项级标签(本实例中为<browse>).在文件末尾,web前端制作只有<browse>标签需要被关闭.

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

填入产品信息
完成了文件头后承接网页制作,这样就能提供产品XML所需的内容.internalXML()是一系列的StringBuffer.append()调用.StringBuffer也被转换成字符串并返回给控制方法.
public String toXml()
{
StringBuffer xml = new StringBuffer("<product> ");
xml.append(internalXml());
xml.append("</product> ");
return xml.toString();
}

public String internalXml()
{
StringBuffer xml = new
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(amount).append(" ");
xml.append(" ").append(vendor).append(" ");
xml.append(" ");
xml.append(" ").append(pubDesc).append(" ");
xml.append(" ").append(venDesc).append(" ";
厖?
return xml.toString();
}


关闭文件
最后web切图报价,并最终完成架构好的XML文件.来自控制方法的整个StringBuffer也转换成字符串符合w3c标准,并返回给处理最初HTTP请求的servlet.

三、用XSL作为模板语言

为了得到HTML输出,符合w3c标准我们把生成的XML文件和控制XML数据如何表示的XSL模板相结合.我们的XSL模板由精心组织的XSL和HTML标签组成.

开始建模板
我们的XSL模板开始部分与下面这段代码类似.第一行代码为必需代码网页外包接活,将本文件定义为XSL样式表.xmlns:xsl=属性引用本文件所使用的XML名称空间,网页外包接活而version=属性则定义名称空间的版本号.在文件的末尾web前端制作,我们关闭标签.

由<xsl:template>开始的第二行代码确定了XSL模板的模式.Match属性是必需的,div+css制作在这里指向XML标签<basketPage>.在我们的系统里承接网页制作,<basketPage>标签里包含<product> 标签,兼职手机网页制作这使得XSL模板可以访问嵌在<product>标签内的产品信息.我们又一次必须在文件末尾关闭<xsl:template>标签.

接下来web切图报价,我们来看一看组织良好的HTML.由于它将被XML解析引擎处理,web切图报价所以必须符合组织良好的XML的所有规则.从本质上来讲符合w3c标准,这意味着所有的开始标签必须有对应的结束标签.例如,html切图制作通常不被结束的<P>标签网页外包接活,必须用</P>关闭.


<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="basketPage">
<html>
<head>
<title>Shopping Bag / Adjust Quantity</title>
</head>
<body bgcolor="


</xsl:template>
</xsl:stylesheet>


在模板的主体内,网页外包接活有很多XSL标签被用于为数据表示提供逻辑.下面解释两个常用的标签.
Choose
<xsl:choose>标签类似于传统编程语言中if-then-else结构的开始部分.在XSL中web前端制作,choose标签表示在代码进入的部分中,web前端制作赋值将触发动作的发生.拥有赋值属性的<xsl:when>标签跟在choose标签后面.如果赋值是正确的承接网页制作,位于<xsl:when>的开始和结束标签之间的内容将被使用.如果赋值错误,div前端切图就使用<xsl:otherwise>的开始和结束标签之间的内容.整个部分用</xsl:choose>来结束.

在这个例子里web切图报价,when标签会为quantity标签检查XML.如果quantity标签里含有值为真的error属性,web切图报价quantity标签将会显示列在下面的表格单元.如果属性的值不为真符合w3c标准,XSL将会显示otherwise标签间的内容.在下面的实例里,符合w3c标准如果error属性不真网页外包接活, Arial" size="1" color="<b>*Not enough in stock. Your quantity was adjusted accordingly.</b></font>
</td>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>


For-each
<xsl:for-each>标签可以用来对相似XML数据的多种情况应用同一个样式表.对于我们来说web前端制作,可以从数据库中取出一系列产品信息,web前端制作并在Web页上进行统一格式化.这里有一个例子:
<xsl:for-each select="package">
<xsl:apply-templates select="product"/>
</xsl:for-each>


for-each 循环在程序遇到标签时开始.这个循环将在程序遇到标签时结束.一旦这个循环运行承接网页制作,每次标签出现时都会应用这个模板.

四、生成HTML

将来的某一时刻,兼职手机网页制作浏览器将会集成XML解析引擎.到那时web切图报价,你可以直接向浏览器发送XML和XSL文件,网站div+css而浏览器则根据样式表中列出的规则显示XML数据.不过符合w3c标准,我们已经在Java servlet里集成了一个XML解析器.这个解析器使用一种称为XSLT (XSL Transformation)的机制网页外包接活,按XSL标签的说明向XSL模板中添加XML数据.

当我们的Java servlet处理HTTP请求时,网页外包接活servlet检索动态生成的XML,然后XML被传给解析引擎.根据XML文件中的指令,div+css制作解析引擎查找适当的XSL样式表.解析器通过DOM结构创建HTML文件承接网页制作,然后这个文件再传送给发出HTTP请求的用户.

如果你选择使用SAX模型,兼职手机网页制作解析器会通读XML源程序web切图报价,为每个XML标签创建一个事件.事件与XML数据对应,web切图报价并最终按XSL标签向样式表中插入数据.
点击次数:6113
作者:
web前端行业资讯
Web new NewsList
谷歌安全博客披露“英特尔内核漏洞”更多细节 ,,2018年01月04日Postgres10开发者新特性 ,,2017年12月28日阿里巴巴、狗尾草、苏大联合论文:基于对抗学习的众包标注用于中文命名实体识别 ,,2017年12月28日柯洁的2017:20岁,与AI斗与人类斗,其乐无穷 ,,2017年12月28日如果机器人拥有痛觉,这个世界会有哪些不一样? ,,2017年12月28日苹果经典电脑Lisa源代码修复完成将于2018年开源 ,,2017年12月28日腾讯浏览指数发布年终榜单2017年人们都关注哪些AI话题? ,,2017年12月28日除了发现开普勒90,NASA还靠AI做了什么? ,,2017年12月28日柯洁宣布:明年4月,将再次与围棋AI交锋 ,,2017年12月28日百度无人车美国首秀CES将发布Apollo2.0 ,,2017年12月28日这四种技术发展趋势将在2018年改变世界 ,,2017年12月28日2017:谷歌DeepMind团队的年度回顾 ,,2017年12月28日封杀这个公式,AI智商将为零 ,,2017年12月28日微软AI高管:要让所有人、所有机构都用上人工智能 ,,2017年12月28日为什么Linux桌面年一直未到来 ,,2017年12月28日AppleLisa操作系统将开源 ,,2017年12月28日2018年9大技术趋势预测 ,,2017年12月28日谷歌研究院发布NIMA:能评价图像有多美,还能让图像变得更美 ,,2017年12月28日苹果为2019年iPhone开发大容量电池新技术 ,,2017年12月28日谷歌发布Tacotron2:能更简单地训练AI学习演讲 ,,2017年12月21日TensorFlow漏洞爆发背后:关于AI安全我们的傻与天真 ,,2017年12月21日Android端Edge浏览器新版发布:常规性能优化和BUG修复 ,,2017年12月21日三星开发出全球最小的DRAM芯片技术领先优势扩大 ,,2017年12月21日腾讯绝艺AI下一步将学习AlphaGozero自对弈训练 ,,2017年12月21日Facebook社交VR应用Spaces扩大覆盖面:入驻HTCVive ,,2017年12月21日设计图曝光:三星双屏折叠手机原来是这样的 ,,2017年12月21日微信支付和支付宝已成为世界移动支付的"老师" ,,2017年12月21日新专利表明FaceID未来有望装备在iPad、MacBook和iMac等设备 ,,2017年12月21日首批九个建议加入EE4J的项目 ,,2017年12月21日这就是SurfacePhone?微软可折叠手机概念图曝光 ,,2017年12月21日如果你喜欢上了一个程序员小伙,献给所有的程序员女友 【移动开发】2015年08月17日hdu1686KMP水题 【编程语言】2014年11月04日java设计模式--------行为模式之策略模式(2) 【编程语言】2014年12月16日ruby学习之Hash 【综合】2015年01月13日Java中的<<>>运算符操作细节 【移动开发】2015年04月01日网站访问分析Web-IAV7.1专业版下载2014年01月29日改变网页背景图片2014年01月28日SpringBootv1.3.6发布 ,,2016年07月24日字符串全排序,非重复的全排序【移动开发】2015年03月30日超有用的sql查询语句,项目、面试都有用 【Web前端】2015年07月17日OFFICE2003可以下载地址集合2014年01月29日Java常量定义 【编程语言】2015年04月03日zoj3870TeamFormation【移动开发】2015年05月07日【LeetCode】【Java】EditDistance 【编程语言】2015年07月20日限制文本框中只能输入实数或整数,其它字符无效,有劳大家了!2014年01月29日可变参数列表的实现 【编程语言】2015年05月20日数据仓库平台,ApacheHive0.9.0发布 ,,2016年06月23日MTBF【移动开发】2015年06月29日某市大型汽车网-vip代码提供下载了2014年01月29日androidservice总结 【编程语言】2014年11月20日修改ScrollView的滑动速度和解决ScrollView与ViewPager的冲突 【移动开发】2014年11月14日uml精粹——10.状态机图【编程语言】2015年06月11日ExtJs4.2应用:根据指定格式显示列字段信息 【移动开发】2014年12月16日uva1252(状态压缩dp)【编程语言】2015年07月17日第六周项目四-成员函数、友元函数和一般函数有区别一般函数 【编程语言】2015年04月17日【JNI】Find'jni.h'forMacOS【综合】2015年05月13日高级容器引擎Dockerv1.12.4发布 ,,2016年12月15日LeetCode【Tree】:BinaryTreeLevelOrderTraversalII 【编程语言】2014年12月01日通过length属性判断jquery对象是否存在2014年01月29日OpenLayers学习笔记6——使用jQueryUI实现查询并标注(功能实现篇) 【编程语言】2015年06月11日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)