JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。

当通过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目录下:

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/html; 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>

JSP笔记-XML 数据处理相关推荐

  1. JSP XML数据处理

    JSP XML数据处理 当通过HTTP发送XML数据时,就有必要使用JSP来处理传入和流出的XML文档了,比如RSS文档.作为一个XML文档, 它仅仅只是一堆文本而已,使用JSP创建XML文档并不比创 ...

  2. kaggle实战笔记_1.数据处理

    kaggle实战笔记_1.数据处理 数据处理的重要性比模型更重要 如果正负样本是1:100的话,直接拿去做建模,问题是非常大的,如果其评判标准为accuracy的话,如果把任何一个样本都判定为负样本的 ...

  3. Java开发笔记XML报文的解析

    Java开发笔记XML报文的解析 前言 正文 代码示例 结语 前言 项目任务里需要解析xml报文. 于是开始着手学习相关知识,在查看了多篇博文后找到了一篇不错的,讲的很实用. 转载来源:Java开发笔 ...

  4. JSP~~JSTL~~XML标签库

    XML 提供了非常灵活的方式来表示结构化的数据,可以创建自己的标记来识别数据,不仅仅人可以看懂,而且计算机也可以读懂.并且 XML 可以在不兼容的系统之间进行数据的交换,所以 XML 必定将称为最普遍 ...

  5. Nodejs 爬虫小计(内容包含CDADA,xml数据处理,charset内容转码)

    一.爬虫逻辑一个基础插件工具 1.爬虫逻辑(自我总结,不代表正规概念) (1)直接获取接口数据,大多数接口是有权限控制,接口数据风险较大,但是数据是最完整的,数据处理也是相对简单的. (1-1)基础工 ...

  6. JSP笔记-文件上传

    JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准.JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTM ...

  7. JSP笔记-JavaBean

    JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准.JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTM ...

  8. JSP笔记-页面重定向

    JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准.JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTM ...

  9. JSP笔记-发送邮件

    JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准.JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTM ...

最新文章

  1. 文件操作(ifstream、ofstream、fstream)
  2. 使用Docx4j操作PPT指南系列(附一)
  3. 智能车竞赛B车模车轮毂断裂原因所在
  4. 2021年春季学期-信号与系统-第三次作业参考答案-第五道题
  5. Day 13 老师应该要让课堂有趣吗
  6. 2.3. 实体(Core Data 应用程序实践指南)
  7. 提升方法---提升树
  8. Bech32编码 (2)原理
  9. 数字化转型升级,人才战略是核心
  10. 如何取得用户参数文件中的parameters
  11. KindEditor上传的图片显示在jsp页面上时调整布局
  12. JUnit和Hamcrest:在assertEquals上进行改进
  13. XEN--转载自鸟哥的linux私房菜
  14. 【POJ - 2533】Longest Ordered Subsequence(四种方法解决最长上升子序列 含二分优化版本)
  15. 重新一步一步学习Lucene.NET 一个简单的程序开始(1)
  16. 图像分割matlab阈值自动计算,图像分割的阈值算法matlab实现.doc
  17. 三、EasyExcel实现数据填充
  18. 迅捷路由器造成计算机无法上网,迅捷fw325r路由器不能上网(连不上网)怎么办?...
  19. 【Auto.JS】Autojs官方提取文档使用说明函数 (1)
  20. 重温线性代数(1)——线性组合

热门文章

  1. 自然语言处理(NLP)之pyltp的介绍与使用(中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注)
  2. 自然语言处理(NLP)之用深度学习实现命名实体识别(NER)
  3. 汇编语言 第3版 王爽 检测点习题部分—答案及详细解析
  4. 若显示器接口电路中的刷新存储器容量为1MB,当采用800*600的分辨率模式时,每个像素最多可以有多少()种颜色
  5. 我的matlab5个车牌_顶帽_底帽_边缘_腐蚀
  6. 如何在超大分辨率的图片中检测目标?
  7. 实战:车牌识别之车牌定位
  8. 堆、栈、方法区、静态代码块---Java
  9. LaTex in Markdown
  10. [分享] 从定制Win7母盘到封装详细教程 By BILL ( 10月23日补充说明 )