xmlservlet与jsp的区别有什么区别

html,xml,css,jsp这几者之间有什么关系和区别?_百度知道
html,xml,css,jsp这几者之间有什么关系和区别?
知识就是力量ud
来自百度知道认证团队
知识就是力量ud
采纳数:37
获赞数:190
擅长:暂未定制
html是用来写网页的语言,只能用于前端;xml是用来存小数据的文件;css是样式文件,一般是div+css+js做前端开发;jsp是基于java的.net文件,一般是用来做后台的。1、编程语言(programming language),是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。2、最早的编程语言是在电脑发明之后产生的,当时是用来控制提花织布机及自动演奏钢琴的动作。在电脑领域已发明了上千不同的编程语言,而且每年仍有新的编程语言诞生。很多编程语言需要用指令方式说明计算的程序,而有些编程语言则属于声明式编程,说明需要的结果,而不说明如何计算。
获赞数:40
html是超文本标记语言,通俗的说就是你现在看到的这个网页的源代码,不同的浏览器都会对这个html文本解析,得到一个网页呈现在浏览器中。
xml 可为扩展的标记语言,就是可以自定义DOM节点,现在用XML用来支持异步数据传输较多,比如JSON,很多原生的API也都是XML格式的。
css 叫层叠样式表,就来美化html页面的,现在主流的是配合DIV一起排版。
jsp 是一种服务器编程技术,主要用java写服务器页面,这些页面支持java语义的标记,到时候都会通过http传输到用户的浏览器解析为标准的html页面。这些百科挺多的,自己多找找会更全面。
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。jsp 页面读取xml数据 - ITeye问答
首先,jsp页面的值是 从数据库取出来的。 其次,数据库取出来的是 int型 ;
xml 里放的
一些经常要该的 一些参数比如 &xml& &stus& &stu& &id&1&/id& &name小明&/name& &/stu& &stu& &id&1&/id& &name小强&/name& &/stu& &stu& &id&1&/id& &name小红&/name& &/stu& .......... &/stus& &/xml&
最后,谢谢大家的帮助!!
问题补充:1,我不想在后台解析数据 那个跟我在数据库里取值是一个道理。
&br /&2,我要的是 去出的数据放在list中&& 然后在jsp页面用jstl显示,但是显示的只是 int型,在放list的同时,解析xml
message.xml:
&?xml version="1.0" encoding="UTF-8" standalone="no"?&&Messages&
&name&呵呵&/name&
&text&大家好&/text&
&sendtime&22:22:34&/sendtime&
&/Message&
&name&呵呵&/name&
&text&你也好啊&/text&
&sendtime&22:22:37&/sendtime&
&/Message&
&/Messages&
public ArrayList getMessage(){
String xmlFileName =
List list = new ArrayList();
MessageBean msg =
xmlFileName = this.getClass().getClassLoader().getResource("/").toURI().getPath() +"com/xt/chart/dao/Messages.xml";
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
//建立解析器工厂
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
//建立解析器对象
DocumentBuilder db = dbf.newDocumentBuilder();
//创建Document对象,加载带解析的xml文件
Document doc = db.parse(xmlFileName);
//创建NodeList对象保存xml中Student的节点集合
NodeList nl = doc.getElementsByTagName("Message");
//通过循环遍历节点集合
for(int i = 0;i & nl.getLength();i++){
//item方法定位到集合中的某个具体节点上
Element n = (Element)nl.item(i);
//通过getElementsTagName查找STUDENT节点中的所有节点
NodeList l1 = n.getElementsByTagName("name");
NodeList l2 = n.getElementsByTagName("text");
NodeList l3 = n.getElementsByTagName("sendtime");
msg = new MessageBean();
//将节点上的第一个子节点(即文本节点)的值保存到UserBean
String name = l1.item(0).getFirstChild().getNodeValue();
String text = l2.item(0).getFirstChild().getNodeValue();
String sendtime = l3.item(0).getFirstChild().getNodeValue();
msg.setName(name);
msg.settext(text);
msg.setSendtime(sendtime);
list.add(msg);
return (ArrayList)
}catch(Exception e){
e.printStackTrace();
public void setMessage(MessageBean msg){
String xmlFileName =
xmlFileName = this.getClass().getClassLoader().getResource("/").toURI().getPath() +"com/xt/chart/dao/Messages.xml";
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Element elmP
Element elmP
Element elmN
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
doc=db.parse(xmlFileName);
elmPeople=(Element)doc.getElementsByTagName("Messages").item(0);
elmPerson=doc.createElement("Message");
elmName=doc.createElement("name");
elmName.appendChild(doc.createTextNode(msg.getName()));
elmtext=doc.createElement("text");
elmtext.appendChild(doc.createTextNode(msg.gettext()));
elmsendtime=doc.createElement("sendtime");
elmsendtime.appendChild(doc.createTextNode(msg.getSendtime()));
elmPerson.appendChild(elmName);
elmPerson.appendChild(elmtext);
elmPerson.appendChild(elmsendtime);
elmPeople.appendChild(elmPerson);
TransformerFactory tf= TransformerFactory.newInstance();
Transformer trans=tf.newTransformer();
trans.transform(new DOMSource(doc), new StreamResult(new File(xmlFileName)));
}catch(Exception e){
e.printStackTrace();
已解决问题
未解决问题JSP XML 数据处理
当通过HTTP发送XML数据时,就有必要使用JSP来处理传入和流出的XML文档了,比如RSS文档。作为一个XML文档,它仅仅只是一堆文本而已,使用JSP创建XML文档并不比创建一个HTML文档难。
使用JSP发送XML
使用JSP发送XML内容就和发送HTML内容一样。唯一的不同就是您需要把页面的context属性设置为text/xml。要设置context属性,使用&%@page % &命令,就像这样:
&%@ page contentType="text/xml" %&
接下来这个例子向浏览器发送XML内容:
&%@ page contentType="text/xml" %&&books& &book& &name&Padam History&/name& &author&ZARA&/author& &price&100&/price& &/book&&/books&
使用不同的浏览器来访问这个例子,看看这个例子所呈现的文档树。
在JSP中处理XML
在使用JSP处理XML之前,您需要将与XML 和XPath相关的两个库文件放在&Tomcat Installation Directory&\lib目录下:
XercesImpl.jar:在这下载
xalan.jar:在这下载
books.xml文件:
&books&&book& &name&Padam History&/name& &author&ZARA&/author& &price&100&/price&&/book&&book& &name&Great Mistry&/name& &author&NUHA&/author& &price&2000&/price&&/book&&/books&
main.jsp文件:
&%@ page language="java" contentType="text/ charset=UTF-8" pageEncoding="UTF-8"%&&%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&&%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %& &html&&head& &title&JSTL x:parse Tags&/title&&/head&&body&&h3&Books Info:&/h3&&c:import var="bookInfo" url="http://localhost:8080/books.xml"/& &x:parse xml="${bookInfo}" var="output"/&&b&The title of the first book is&/b&: &x:out select="$output/books/book[1]/name" /&&br&&b&The price of the second book&/b&: &x:out select="$output/books/book[2]/price" /& &/body&&/html&
访问http://localhost:8080/main.jsp,运行结果如下:
BOOKS INFO:The title of the first book is:Padam History The price of the second book: 2000
使用JSP格式化XML
这个是XSLT样式表style.xsl文件:
&?xml version="1.0"?&&xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"& &xsl:output method="html" indent="yes"/& &xsl:template match="/"& &html& &body& &xsl:apply-templates/& &/body& &/html&&/xsl:template& &xsl:template match="books"& &table border="1" width="100%"& &xsl:for-each select="book"& &tr& &td& &i&&xsl:value-of select="name"/&&/i& &/td& &td& &xsl:value-of select="author"/& &/td& &td& &xsl:value-of select="price"/& &/td& &/tr& &/xsl:for-each& &/table&&/xsl:template&&/xsl:stylesheet&
这个是main.jsp文件:
&%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&&%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %& &html&&head& &title&JSTL x:transform Tags&/title&&/head&&body&&h3&Books Info:&/h3&&c:set var="xmltext"& &books& &book& &name&Padam History&/name& &author&ZARA&/author& &price&100&/price& &/book& &book& &name&Great Mistry&/name& &author&NUHA&/author& &price&2000&/price& &/book& &/books&&/c:set& &c:import url="http://localhost:8080/style.xsl" var="xslt"/&&x:transform xml="${xmltext}" xslt="${xslt}"/& &/body&&/html&
运行结果如下:
更多关于使用JSTL处理XML的内容请查阅JSP标准标签库。
如您还有不明白的可以在下面与我留言或是与我探讨QQ群,我们一起飞!
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
Java程序开发数据库 Web编程JavaOracle编程JavaWeb JSP、JavaBean
Java程序开发数据库 Web编程JavaOracle编程JavaWeb JSP、JavaBean
今日搜狐热点源自:1-6 手工编写第一个Java Web程序
web.xml和index.jsp有什么区别?
web.xml和index.jsp有什么区别?
提问者:qq_渡鸦_0
web.xml是web应用的配置文件,而index.jsp文件是一个默认跳转页面XML与JSP本文来自http://www.javaworld.com/javaworld/jw-03-2000/jw-0331-ssj-jspxml.htm 如果你访问该页,还可以连接到resource,init.jsp和其它源代码文件 此致 }   Two great tastes that taste great together 作者:Alex Chaffee 概览: XML和JSP是这些日子中最热的东西。本文介绍如何联合这两 种技术来建设动态网站。你还可以同时看一下DOM,XPath,XSL, 和其它Java-XML技术的示例代码。 我们在此假设你已经了解JavaServer Pages(JSP)和Extensible Markup Language (XML)。但也许你对该如何综合使用它们仍然有些 迷惑。 JSP的应用很容易,你可以用它设计网页,使之看起来似乎和HTML一 样。唯一的不同是JSP是动态执行的。例如,它们可以处理表单form 和读写数据库。 XML的应用的说明则比较困难。似乎所有的产品都支持它,每个人也 好象都以各种不同目的在使用它。 在本文中,你可以看到如何使用一种相当先进的方式用XML来设计一 个系统。许多站点有巨量数据收集并以一种很标准或很不标准的方式 来显示它们。我将设计一个系统,它使用XML文件在web服务器上进行 存储,并用JSP来显示数据。 XML vs 关系型数据库 "等一下!"你可能问,"你用XML文件存储数据吗?为什么不使用数据库?" 这个问题问的很好。我的回答是,对很多目的用途来说,用数据库太 过浪费了。.要使用一个数据库,你必须安装和支持一个分离的服务器 处理进程(a separate server process),它常要求有安装和支持它 的administrator。你必须学习SQL, 并用SQL写查询,然后转换数据, 再返回。而如果你用XML文件存储数据,将可减少额外的服务器的负 荷。还有,你还找到了一个编辑数据的简单方法。你只要使用文本编 辑器,而不必使用复杂的数据库工具。XML文件很容易备份,和朋友共 享,或下载到你的客户端。同样的,你可以方便地通过ftp上载新的 数据到你的站点。 XML还有一个更抽象的优点,即作为层次型的格式比关系型的更好。 它可以用一种很直接的方式来设计数据结构来符合你的需要。你不需 要使用一个实体-关系编辑器,也不需要使你的图表(schema)标准 化。 如果你有一个元素(element)包含了另一个元素,你可以直接 在格式中表示它,而不需要使用表的关联。 注意,在很多应用中,依靠文件系统是不够充分的。如果更新很多, 文件系统会因为同时写入而受到破坏。数据库则通常支持事务处理, 可以应付所发生的请求而不至于损坏。对于复杂的查询统计要有反复 、及时的更新,此时数据库表现都很优秀。当然,关系型数据库还 有很多优点,包括丰富的查询语言,图表化工具,可伸缩性,存取 控制等等。 (注意:你可以使用简单的文件锁定来提供一个事务处理服务器,你还 可以在java中执行一种 XML index-and-search工具,不过这已经是 另外一篇文章的主题了。) 在下面这样的案例中,正如大多数中小规模的、基于发布信息的站 点一样,你可能涉及的大多数数据存取都是读,而不是写,数据虽 然可能很大,但相对来说并没有经常的更新变化,你也不需要做很 复杂的查询,即使你需要做,也将用一个独立的查询工具,那么成 熟的RDBMS的优点消失了,而面向对象型的数据模型的优点则可以得 到体现。 最后,为你的数据库提供一个查询器外壳来进行SQL查询并将他们转 化进入XML stream也是完全有可能的。 所以你可以选择这二种方式之一。XML正变成一种非常健壮的,便于 编程的工具,作为某个成熟的数据库的前端工具来进行存储和查询。 (Oracle的XSQL servlet即是这种技术的一个很好的例子。) 应用篇:一个在线相册 所有人都喜欢照相!他们喜欢展示自己的,亲人的,朋友的,度假 时的照片,而 Web 是他们展示的好地方。-- 即使千里之外的亲戚 都可以看到。我将着重于定义一个单独的Picture对象。(这一应用的 源代码在Resources中可以取得) 。该对象描述了表示一张照片所需 要的字段:title,date,一个可选的标题,以及对图片来源的一个指 向。 一个图象,需要它自己的一些字段:源文件( GIF/JPEG)的定位,宽 度和高度像素(以协助建立&img& 标记。 这里可以看到一个很简单 优点,即使用文件系统来代替数据库的时候,你可以将图形文件存 放在与数据文件相同的目录中。 最后,让我们来用一个元素扩展图片记录,该元素定义了一套缩略 图(thumbnail)来用于内容表或其它地方。这里我用了和先前同样 定义的图片内容。 一张图片的XML表示可以是这样的: &picture& &title&Alex On The Beach&/title& &date&&/date& &caption&Trying in vain to get a tan&/caption& &image& &src&alex-beach.jpg&/src& &width&340&/width& &height&200&/height& &/image& &thumbnails& &image& &src&alex-beach-sm.jpg&/src& &width&72&/width& &height&72&/height& &/image& &image& &src&alex-beach-med.jpg&/src& &width&150&/width& &height&99&/height& &/image& &/thumbnails& &/picture& 注意,通过使用XML, 你将一张单独图片的全部信息放到了一个单独 的文件中,而不是将它分散放入3-4个表中。 我们将这称为 .pix file -- 于是你的文件系统会是这样的: summer99/alex-beach.pix summer99/alex-beach.jpg summer99/alex-beach-sm.jpg summer99/alex-beach-med.jpg summer99/alex-snorkeling.pix etc. 技术篇 俗话说,要剥下猫的皮的方法何止一种。同样,将XML数据放到JSP 中也不止一种办法。这里列举了其中一些方法,(其实,很多其它工 具也可以做得同样出色。) DOM: 你可以使用类(classes)来调用DOM接口(interface)对XML 文件进行分析检查。 XMLEntryList: 你可以使用我的代码来将XML加载到name-value pairs 的java.util.List中。 XPath: 你可以使用一个 XPath处理器(如Resin)通过路径名在XML 文件中定位元素。 XSL:你可以使用某种XSL处理器将XML转换成为HTML。 Cocoon: 你可以使用开放源码的Cocoon framework 运行你自己的bean: 你可以写一个外壳类(wrapper class),使用某 种其它技术来将数据加载到字定义的JavaBean中。 请注意这些技术将和一个你从另外来源取得的XML stream执行得同样 出色,例如一个客户端或者一个应用服务器。 JavaServer Pages JSP规范有很多替身,不同的JSP产品表现也不尽相同,不同版本之间 也有差别。我选择了Tomcat,这基于以下原因: 它支持大多数最新的JSP/servlet规范 它受到 Sun和Apache认同 你可以独立运行它而不需要另外配置一个Web服务器。 它是开放源码的 你可以选择任何你喜欢的JSP引擎,但要自己配置它,它必须至少支 持JSP 1.0规范。0.91和1.0之间有了许多区别。而JSWDK (Java Server Web Development Kit) 可能刚刚好地适合要求。 JSP结构 当创建一个jsp网站 (Webapp), 我喜欢将公用的函数、导入、常量、 变量声明都放入到一个单独的文件init.jsp中。 然后用 &%@include file="init.jsp"%&加载到每一个文件中去。 &%@include%& 就象C语言的 #include, include在编译时使其中的 文本作为一个部分被加入并一起进行编译,相对地, &jsp:include& 标记则是使其中的文件被独立地进行编译,然后在文件中嵌入一个对 它的调用。 查找文件 当JSP启动时,初始化后第一件事情就是查找你要的XML文件。它是怎 么知道在众多文件中你要找的是哪一个? 它来自与一个参数,使用者 会在调用jsp的URL中加入参数: picture.jsp?file=summer99/alex-beach.pix (或者通过HTML表单来传递文件参数)。 但是,当JSP接受此参数以后,你仍然只完成了一半工作,因为还要 知道文件系统的根目录在哪里。例如,在Unix系统中,实际文件可能 在这样的路径: /home/alex/public_html/pictures/summer99/alex-beach.pix。 JSP文件在执行状态时没有当前路径概念。所以你为java.io包要给出 一个绝对路径。 Servlet API可以提供一个方法来将一个URL路径,从相对于当前JSP 或Servlet的路径转化成为一个绝对的文件系统路径。方法是: ServletContext.getRealPath(String)。 每一个JSP有一个叫做application的 ServletContext对象。所以代 码可以是: String picturefile = application.getRealPath("/" + request.getParameter("file")); 或者 String picturefile = getServletContext().getRealPath("/" + request.getParameter("file")); 它也可以在servlet中工作。(你必须加上 / 因为此方法需要传递request.getPathInfo ()的结果。) 这里有一个重要的提示:每当你存取本地的资源,要非常小心地检查输入数据的合法性 。 黑客或者粗心的用户,可能发送伪造的或错误的数据来破坏你的站 点。例如,请想一下以下的表达会发生什么结果: 如果输入了file=../../../../etc/passwd。这样用户回读到你的 服务器的password文件! DOM (Document Object Model) DOM 代表文档对象模型Document Object Model。它是浏览XML文档 的一种标准API,由World Wide Web Consortium (W3C)发展。 接口 在org.w3c.dom包中,文档参见W3C站点。 有许多可用的DOM分析器工具。我选择了 IBM的XML4J。但你可以使用 任何其它的DOM分析器。这是因为DOM是一套接口,而不是类 --所有的 DOM分析器(parser)必须返回同样地处理这些接口的对象。 遗憾的是,虽然很标准,DOM还是有两大缺陷: 1 API虽然也是面向对象的,还是相当笨重。 DOM parser并没有标准的API,所以, 当每一个分析器返回一 个org.w3c.dom对象,文档对象--分析器初始化和文件自身加载的方 式,对应于不同分析器通常总是特定的。 这个简单的上面已描述的图片文件在DOM中可以在一个树结构中通 过一些对象表示如下: Document Node --& Element Node "picture" --& Text Node "/n " (whitespace) --& Element Node "title" --& Text Node "Alex On The Beach" --& Element Node "date" --& ... etc. 为了取得“Alex On The Beach”,你要做一些方法调用,游历DOM 树,而且,分析器可能选择分散“whitespace”文本nodes的一些数 据,你不得不使用循环和串联等 (你可以通过调用normalize()来 纠正这个问题。)分析器可能还包含了分离的XML实体(如 &), CDATA nodes或者其它实体nodes (如&b&big&b&会被变成至少三个 node。也没有办法在DOM中简单表示"get me the text value of the title element." 总之,在DOM中游历有一点笨重。(参见本文 用XPath取代DOM章节。) 2 从更高处看,DOM的问题是XML对象无法象Java对象一样可以直接得 到,它们需要通过 DOM API一个一个地得到。 你可以参考我的为Java-XML Data Binding技术讨论做的一些归纳, 那里也用了这种直接使用Java的方法来存取XML数据。 我写了一个小的工具类,叫做DOMUtils,包含了静态方法来执行公用 的DOM任务。例如,要获得根(图片)元素的title子元素的文本内 容,你可以编写如下代码: Document doc = DOMUtils.xml4jParse(picturefile); Element nodeRoot = doc.getDocumentElement(); Node nodeTitle = DOMUtils.getChild(nodeRoot, "title"); String title = (nodeTitle == null) ? null : DOMUtils.getTextValue(nodeTitle) ; 得到image子元素的值也同样直接: Node nodeImage = DOMUtils.getChild(nodeRoot, "image"); Node nodeSrc = DOMUtils.getChild(nodeImage, "src"); String src = DOMUtils.getTextValue(nodeSrc); 等等。 一旦你需要将Java变量用于每一个相关的元素,你必须做的是将变 量嵌入到 HTML 标记中去: &table bgcolor="#FFFFFF" border="0" cellspacing="0" cellpadding="5"& &tr& &td align="center" valign="center"& &img src="&%=src%&" width="&%=width%&" height="&%=height%&" border="0" alt=" &%=src%&"&&/td& &/tr& &/table& 用JSP bean进行model/view分离 所有上面的picture-dom.jsp代码是很不吸引人的。虽然你可以在jsp中加入上万条 java代码,但这样就没有使用JSP JavaBeans方法看上去来得简单。 javabean存放了大量Java代码,并在JSP脚本中加以调用。 为了制作一个模型,将所有java代码放在JSP中来开始一个项目,这样 相对比较简单。一旦有什么新的想法可以直接回去展开代码,然后改写 为一些JavaBeans。虽然投资较高,但长远来看回报更好,因为你的应 用更为模型化。 你可以在多个页面中重复使用bean而不用担心剪贴带 来的不良后果。 在我们的案例中,一个典型的JSP JavaBean是从XML中展开字符串。 你可以定义Picture, Image和Thumbnails类,来表示主要的XML文件 中的元素。 这些beans带有构造器constructors或者setter方法,它 们从展开值中带入一个DOM node或一个文件名。你可以参 考picturebeans包或picture-beans.jsp. 在看代码时请注意以下几点: * 我将接口的定义独立于类的执行,这样你可以很自由地选择在将来 进行替代,你可以将值存放在一个List中,或者在DOM自身,甚至可 以在数据库中。 * bean在一个自定义的包中被定义--picturebeans。所有JSP bean必 须要在某一个包中。大多数JSP引擎都不能从缺省包中发现类。 * 除了get方法,我也提供了set方法,当前你只是读取,但在将来, 你要让用户编辑图片,所以你要规划用语修改写入属性的功能。 * &%=picture.getCaption()%&取代了 &%=caption%&, 因为值是存放 在一个bean中而不是本地变量中。但是,如果你需要,你可以将本地 变量定义为 String caption = picture.getCaption(); 这也是允许的,这可以使 代码更容易阅读和理解。   * 通过thumbnails放大缩小 你可能已经注意到我的第一个的 JSP的输出, picture-dom.html, 使用了全部大小的源图片文件。我们可以稍微修改一下代码,使它显 示一个缩略图,我将把缩略图列表存放在XML数据文件中。 让我们定义一个参数,zoom,它的值决定了要显示哪一个缩略图。点 击这个缩略图后回显示全部大小的图片;点击Zoom In或Zoom Out按钮 将选择列表中下/上一种缩略图。 * 由于缩略图对象返回一个Image对象的java.util.List,所以要找到 正确的缩略图并不容易,如果用(Image)picture.getThumbnails().get(i)的话。 * 要制作Zoom In和 Zoom Out连接,你必须建立一个对同一页面的递归的引用,但 使用不同的参数。为了做到这一点,你要使用request.getRequestURI()方法。这 只为你提供了该servlet的路径,没有参数,所以你可以在此补上你要的参数。 &% if (zoom & (thumbnails.size() -1)) { out.print("&a href='" + request.getRequestURI() + "?file=" + request.getParameter("file") + "&zoom=" + (zoom+1) + "'&"); out.print("Zoom In&/a&"); } %& 这里是一个HTML的屏幕拷贝。 http://www.javaworld.com/jw-03-2000/jspxml/picture-dom.html 使用JSP bean JSP规范定义了 &jsp:useBean&标记来自动实例化和使用JavaBeans。useBean标记可以总 是 被嵌入的Java代码取代,这里我也是这么做的。也是由于这样的原因 人们有时质问使用 useBean 和setProperty标记还有什么必要。这种 做法的优点是: 标记语法有利于HTML设计者独立工作。 useBean有一个scope参数,可以自动地决定bean是否必须存储为一个 本地变量,一个 session变量或一个application属性。 如果这个变量是持久的(session或application),useBean必要时可以 将它初始化,并切在它确实存在的时候才去取得变量。 长远看标记对今后的JSP规范版本来说更为便携(portable)或者更 改执行(例如,, 一个假定的JSP引擎在一个数据库中存储了变量,或 者跨服务器共享数据。) 这个应用中对应的useBean语句为: &jsp:useBean id="picture" scope="request" class="picturebeans.DOMPicture"& &% Document doc = DOMUtils.xml4jParse(picturefile); Element nodeRoot = doc.getDocumentElement(); nodeRoot.normalize(); picture.setNode(nodeRoot); %& &/jsp:useBean& 或者,如果你在DOMBean中定义一个setFile(String)方法: &jsp:useBean id="picture" scope="request" class="picturebeans.DOMPicture"& &jsp:setProperty name="picture" property="file" value="&%=picturefile%&"/& &/jsp:useBean& 使用XMLEntryList 为了克服DOM APIs的一些不足,我创建了一个类,叫做XMLEntryList。这个类 执行了 Java Collections接口java.util.List,以及java.util.Map的 get和put方法,它提供了一套更直观的方法来在一个简单的XML树结构 中往返移动。你可以使用Collections API的标准抽象(abstraction)来 进行象获得 迭代或子视图等。在EntryList的每一个入口都有一个键 key和一个值,就象Map一样;键就是子结点(child nodes)的名字 而值要么是字符串,要么是下一级(child)XMLEntryLists。 XMLEntryList并不意味着可以完全代替DOM。它还无法执行某些DOM的 功能。但是,它是一个方便的外壳(wrapper)在你的XML数据结构上 用于执行基本的getting, setting和 list-oriented 功能。例如, 你可以使用这样的写法来得到图片node的caption元素: String caption = (String)picturelist.get("caption"); caption字段的值早已被作为一个字符串分析和存储了。 缓存 Caching 尽管有很多优点,分析一个XML文件总是需要耗费时间。为了改进基 于XML的应用的性能,你需要使用某种缓存技术。这种缓存必须在内存 中保存XML对象,记住它们来自哪一个文件。如果对象被加载以后文件 被修改了,那么对象需要重新加载。我开发过一个用于这种数据结构 的简单方法,叫做CachedFS.java。你可以供给一个CachedFS 调用返 回功能(function),使用实际执行xml分析的内部类,将文件转为一 个对象。cache于是可以在内存中存储那个对象。 这里是创建cache的代码,这一对象有application scope,所以此后的 请求可以使用同一对象cache。我将把这些代码放到init.jsp,这样你 就不必将这些初始化的代码剪贴到其他JSP文件中去了。总之,你必须 在一个公共的地方定义application-scope对象。 &jsp:useBean id="cache" class="com.purpletech.io.CachedFS" scope="applicatio n"& &% cache.setRoot(application.getRealPath("/")); cache.setLoader( new CachedFS.Loader() { // load in a single Picture file public Object process(String path, InputStream in) throws IOException { try { Document doc = DOMUtils.xml4jParse (new BufferedReader(new InputStreamReader(in))); Element nodeRoot = doc.getDocumentElement(); nodeRoot.normalize(); Picture picture = new DOMPicture(nodeRoot);
} catch (XMLException e) { e.printStackTrace(); throw new IOException(e.getMessage()); } } }); %& &/jsp:useBean& XPath XPath在XML tree中是一个简单的用于定位node的语法。它比 DOM更 容易使用,因 当你要转入另一个node时不必每次都要产生方法调用,你可以把整 个路径嵌入到一个字符串中去,例如: /picture/thumbnails/image[2]. Resin产品包含了一个XPath处理器,你可以将它加入到自己的应用 中去。你可以使用 Caucho XPath对象加载于其自身,不必购买Resin 体系的其它产品。 Node verse = XPath.find("chapter/verse", node); Resin也包含有一个脚本语言,与JavaScript兼容,允许在jsp中对 XPath和XSL的简单存取。 XSL 这篇文章讨论了在JSP中嵌入Java来从XML node中展开数据。完成做同 样工作还可以有另外一种常见的模型:Extensible Stylesheet Language (XSL)。 这一模型和JSP模型有着根本的不同。在JSP中,主要内容是HTML,它包含了 一些Java代码片段;而在XSL中,主要内容是XSL文档,它包含了一些 HTML片段。如果要讨论XSL和 Java/JSP之间的关系,这里的空间已经 不够了。在JavaWorld杂志中将有一篇文章来探讨如何同时使用XSL和 JSP。 目前的结论和未来的发展之路 在读完这篇文章后,相信你应该有了一个JSP-XML应用及其强大威力 的很好的思路及结构认识。然而你也要知道一些它的局限。 开发JSP-XML应用中最令人烦闷的是为每一个 XML schema中的元素 element创建JavaBean。XML Data Binding 组织正在开发一种技术, 可以为每一个给定的schema自动生成Java类。同样的,我也开发了 一种原型-开放源码的Java-XML data binding技术。另外,IBM alphaWorks最近也推出了XML Master, 或称为XMas,这是另一 种XML-Java data binding系统。 另外一种可能性是扩展文件系统的功能,建立一些更加强大的功能, 如查询和事务处理。自然地,我也开始期望这种功能类型也可以作为 开放源码工程来得到发展。那么,有没有谁愿意写一个XML搜索引擎
1. 什么是jsp,什么是Servlet?jsp和Servlet有什么区别?jsp本质上就是一个Servlet,它是Servlet的一种特殊形式(由SUN公司推出),每个jsp页面都是一个servle...
XML(可扩展标记语言)看起来可能像某种W3C标准??现在没有什么实际影响,即使以后能派上用场,也是很久以后的事。但实际上,它现在已经得到了应用。所以,不要等到XML已被加进了你最喜爱的HTML...
在JSP中处理XML
在使用JSP处理XML之前,您需要将与XML 和XPath相关的两个库文件放在\lib目录下:
XercesImpl.jar:在这下载http://w...
&em&XML&/em&HTTP 手册.CHM;css.DHTML.&em&JSP&/em&高级编程(希望版).DOM文档对象中文手册.chm
//--test.jsp保存在tomcat的ROOT目录下-- String item_url=request.getParameter(&item_url&);if(item_url==null)...
当时选在新浪建博客我就是个臭傻逼,一点都不好用,刚刚写好的记录全没了,连图片都插不进去,现在又要写过,好心情全被破坏光了,算了不吐槽了。
http://blog.sina.com.cn/s/b...
1.XML文件xml version=&1.0& encoding=&GB2312& ?&
个人履历表--& resume&person id=&01&&
name&张三name&
利用JSP直接读写XML文件,分别用DOM解析器和SAX解析器加以实现,非常适合初学者入门,作为一个了解&em&jsp与XML&/em&的台阶 综合评分:3 收藏评论(5)举报 所需: 3积分/C币...
没有更多推荐了,

我要回帖

更多关于 jsp与html的区别 的文章

 

随机推荐