往往JSP通常用来动态的生成HTML文件,来代替Servlet的作用,其实JSP还可以做很多事情,比如我以前提到的生成JPEG流,还可以用在XML文档中,很惊讶吧。
通过一个例子简要叙述一下用JSP生成XML文件,我们要做的是把一个数据库的内容写到一个XML文件中,并且以HTML的格式显示出来。
数据库的结构如下:
下面是index.jsp文件(别担心,虽然扩展名是jsp,可它确实是XML):
下面是与XML文档对应的XSLT文档cd.xlst:
生成效果:
问题:我希望将JSP中的内容写到servlet中,同时在JSP中使用标签库将生成的xml与已有的xslt连接起来,这该怎么做?请达人们帮助解答,谢谢。
通过一个例子简要叙述一下用JSP生成XML文件,我们要做的是把一个数据库的内容写到一个XML文件中,并且以HTML的格式显示出来。
数据库的结构如下:
CREATE TABLE `music` (
`year` int(4) NOT NULL default '0',
`title` tinytext NOT NULL,
`artist` tinytext NOT NULL,
`country` tinytext NOT NULL,
`company` tinytext NOT NULL,
`price` tinyint(4) NOT NULL default '0'
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
`year` int(4) NOT NULL default '0',
`title` tinytext NOT NULL,
`artist` tinytext NOT NULL,
`country` tinytext NOT NULL,
`company` tinytext NOT NULL,
`price` tinyint(4) NOT NULL default '0'
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
<%@ page language="java" contentType="text/xml;charset=gbk"%>
<%@ page import="java.sql.*"%>
<?xml version="1.0" encoding="gbk" ?>
<?xml-stylesheet type="text/xsl" href="cd.xslt"?>
<CATALOG>
<%
String server = "127.0.0.1";//数据库服务器地址
String port = "3306";//数据库服务器端口
String db = "music";//数据库名
String user = "root";//用户名
String pass = "root";//密码
String URL = "jdbc:mysql://" + server + ":" + port + "/" + db + "?user=" + user
+ "&password=" + pass;//完整的URL
Connection conn = null;//连接
Statement stmt = null;//语句
ResultSet rs = null;//结果集
try
{
Class.forName("com.mysql.jdbc.Driver");//加载类
conn = DriverManager.getConnection(URL);//取得连接
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM music");//查询music表
while (rs.next())
{//遍历生成XML
%>
<CD>
<TITLE><%=rs.getString("title")%></TITLE>
<ARTIST><%=rs.getString("artist")%></ARTIST>
<COUNTRY><%=rs.getString("country")%></COUNTRY>
<COMPANY><%=rs.getString("company")%></COMPANY>
<PRICE><%=rs.getString("price")%></PRICE>
<YEAR><%=rs.getString("year")%></YEAR>
</CD>
<%
}
}
catch (Exception e)
{
e.printStackTrace();//异常输出
}
%>
</CATALOG>
<%@ page import="java.sql.*"%>
<?xml version="1.0" encoding="gbk" ?>
<?xml-stylesheet type="text/xsl" href="cd.xslt"?>
<CATALOG>
<%
String server = "127.0.0.1";//数据库服务器地址
String port = "3306";//数据库服务器端口
String db = "music";//数据库名
String user = "root";//用户名
String pass = "root";//密码
String URL = "jdbc:mysql://" + server + ":" + port + "/" + db + "?user=" + user
+ "&password=" + pass;//完整的URL
Connection conn = null;//连接
Statement stmt = null;//语句
ResultSet rs = null;//结果集
try
{
Class.forName("com.mysql.jdbc.Driver");//加载类
conn = DriverManager.getConnection(URL);//取得连接
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM music");//查询music表
while (rs.next())
{//遍历生成XML
%>
<CD>
<TITLE><%=rs.getString("title")%></TITLE>
<ARTIST><%=rs.getString("artist")%></ARTIST>
<COUNTRY><%=rs.getString("country")%></COUNTRY>
<COMPANY><%=rs.getString("company")%></COMPANY>
<PRICE><%=rs.getString("price")%></PRICE>
<YEAR><%=rs.getString("year")%></YEAR>
</CD>
<%
}
}
catch (Exception e)
{
e.printStackTrace();//异常输出
}
%>
</CATALOG>
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<body>
<table border="2" bgcolor="yellow">
<tr>
<th>Title</th>
<th>Artist</th>
<th>Country</th><th>Company</th><th>Price</th><th>Year</th>
</tr>
<xsl:for-each select="CATALOG/CD">
<tr>
<td><xsl:value-of select="TITLE"/></td>
<td><xsl:value-of select="ARTIST"/></td>
<td><xsl:value-of select="COUNTRY"/></td>
<td><xsl:value-of select="COMPANY"/></td>
<td><xsl:value-of select="PRICE"/></td>
<td><xsl:value-of select="YEAR"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<body>
<table border="2" bgcolor="yellow">
<tr>
<th>Title</th>
<th>Artist</th>
<th>Country</th><th>Company</th><th>Price</th><th>Year</th>
</tr>
<xsl:for-each select="CATALOG/CD">
<tr>
<td><xsl:value-of select="TITLE"/></td>
<td><xsl:value-of select="ARTIST"/></td>
<td><xsl:value-of select="COUNTRY"/></td>
<td><xsl:value-of select="COMPANY"/></td>
<td><xsl:value-of select="PRICE"/></td>
<td><xsl:value-of select="YEAR"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
生成效果:
问题:我希望将JSP中的内容写到servlet中,同时在JSP中使用标签库将生成的xml与已有的xslt连接起来,这该怎么做?请达人们帮助解答,谢谢。
发表评论
-
db2, oracle和sqlserver取前几行的语法
2010-10-18 11:58 940db2: select * from tab f ... -
项目总结(Ajax+Struts+Spring+Hiberante+SQLServer2000) 第一部分 (转载)
2008-03-29 16:49 675总算将一个项目勉强上线,也是第一次我独立完成的这么多任务,框架 ... -
实例学习Spring和Hibernate的一点点体会 (转载)
2008-03-29 17:36 786昨天用Spring写DAO,有朋友说比较Hibernate还是 ... -
hibernate3.0中文查询问题解决方法
2008-04-07 13:08 738在applicationContext.xml中加入如下代码: ... -
简单的JSTL应用(入门)
2008-04-07 19:51 1015需要的包及TLD文件: 首先需要将用到的jar包放入WEB-I ... -
EL表达式语言
2008-04-09 00:30 692引用:http://blog.163.com/s_zhchlu ... -
使用COOKIE登录验证(转载)
2008-04-21 20:11 1518附加功能:登录成功后 ... -
JavaMail
2008-04-30 13:19 650package org.hank.mail;import ... -
用"window.showModalDialog()"实现DIV模式弹出窗口 (转)
2008-05-04 09:20 17741、test.html 测试页 <html> ... -
以二进制流的方式存取图像
2008-05-07 00:03 1235imageinfo.sql CREATE TABLE ... -
java 生成图片缩略图
2008-05-08 13:26 7172方法一: import javax.imageio.Image ... -
一个不错的弹出窗口的js效果(值的收藏)
2008-06-02 19:00 1114<script type="text/jav ... -
<c:forEach>&条件标签使用
2008-06-06 09:57 7098<c:forEach>标签的使 ... -
div 缓慢下拉效果
2008-06-10 18:05 1519<!DOCTYPE html PUBLIC " ... -
弹出窗口传值
2008-06-13 09:07 909子窗口中内容: function change(obj){ ... -
Action之间传值
2008-06-13 09:13 865return new ActionForward(" ... -
数据库连接池简介
2008-06-15 14:30 742数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应 ... -
Spring的事务管理
2008-06-15 14:32 430Spring提供了一致的事务管理抽象。这个抽象是Sprin ... -
form产生的空行的解决
2008-06-16 16:32 681利用css属性,将form的内部上下左右的填充距离设置为0就好 ... -
实现Web程序的自动登录
2008-06-16 17:13 787...
相关推荐
1. **XML基础**:包括XML的语法、DTD(Document Type Definition)的定义和使用、CSS和XSL样式表,以及XHTML和WML(无线标记语言)的应用。 2. **JSP与XML联合开发技术**:介绍了如何在JSP中解析和操作XML,以及使用...
总的来说,JSP+XML架构网站的实例展示了如何利用XML进行数据标准化,动态生成XML文档,并通过XSL进行数据转换,以实现灵活且高效的网页呈现。这种技术组合在处理复杂数据和构建可扩展的Web应用程序时具有显著优势。
开发者可以通过JDBC API编写数据库操作代码,实现数据的查询、更新、插入和删除等操作。JDBC-ODBC桥接技术是一种通过ODBC(Open Database Connectivity)实现数据库连接的技术,允许JDBC代码通过ODBC驱动连接到各种...
- **XML与数据库**:XML可以与数据库进行交互,例如使用XSLT(XSL Transformations)转换XML数据,或者通过XPath(XML Path Language)查询XML文档中的特定节点。此外,某些数据库如Oracle支持XML类型的列,可以直接...
4.22 查询和分组 164 4.23 处理多个输入文档 172 4.24 jaxp中的xslt api 175 4.24.1 转换器工厂 175 4.24.2 transformer和templates 176 4.24.3 一个例子 178 4.25 小结 179 第2部分 servlet篇 第5章 ...
最后,章节提及了XML文档的显示技术,如CSS和XSL,它们可以帮助开发者将XML数据转换并呈现为用户友好的形式。 通过学习这个教程,初学者将能够掌握Java Web开发中的关键概念和技术,为进一步深入学习和实践打下坚实...
4.22 查询和分组 164 4.23 处理多个输入文档 172 4.24 jaxp中的xslt api 175 4.24.1 转换器工厂 175 4.24.2 transformer和templates 176 4.24.3 一个例子 178 4.25 小结 179 第2部分 servlet篇 第5章 ...
4.22 查询和分组 164 4.23 处理多个输入文档 172 4.24 jaxp中的xslt api 175 4.24.1 转换器工厂 175 4.24.2 transformer和templates 176 4.24.3 一个例子 178 4.25 小结 179 第2部分 servlet篇 第5章 ...
15.2 使用XSL从SQL查询中创建网页 15.2.1 XSLT如何工作 15.2.2 从数据库中检索的数据作为XML文档 15.2.3 使用XSL样式表转换XML 15.2.4 在JSP页面中使用XSL转换 15.3 使用具有XSL样式表的可更新ResultSet 15.4...
15.2 使用XSL从SQL查询中创建网页 15.2.1 XSLT如何工作 15.2.2 从数据库中检索的数据作为XML文档 15.2.3 使用XSL样式表转换XML 15.2.4 在JSP页面中使用XSL转换 15.3 使用具有XSL样式表的可更新ResultSet 15.4...
4.22 查询和分组 164 4.23 处理多个输入文档 172 4.24 jaxp中的xslt api 175 4.24.1 转换器工厂 175 4.24.2 transformer和templates 176 4.24.3 一个例子 178 4.25 小结 179 第2部分 servlet篇 第5章 ...
14. jsp中的数据库的连接方式 15. 在jsp中,怎么实现按回车就可提交表单? 16. 在JSP中如何传递数组? 17. 按地址取图片? 18. JSP中如何上传图片到数据库字段? 19. 页面自动刷新? 20. 表单自动提交? 21. 从JSP传...
15.2 使用XSL从SQL查询中创建网页 15.2.1 XSLT如何工作 15.2.2 从数据库中检索的数据作为XML文档 15.2.3 使用XSL样式表转换XML 15.2.4 在JSP页面中使用XSL转换 15.3 使用具有XSL样式表的可更新ResultSet 15.4...
15.2 使用XSL从SQL查询中创建网页 15.2.1 XSLT如何工作 15.2.2 从数据库中检索的数据作为XML文档 15.2.3 使用XSL样式表转换XML 15.2.4 在JSP页面中使用XSL转换 15.3 使用具有XSL样式表的可更新ResultSet 15.4...
5.3 CSS 与XSL 及其实例 5.4 XHTML 简介 5.5 WML 简介 5.6 本章小结 第6 章 JSP 与XML 联合开发技术 6.1 XML 与JSP 技术联合 6.2 在JSP 中应用XML 6.3 javax.servlet.jsp.tagext 包介绍 6.4 Tag Library 开发与应用...
5. **SQL操作**:JSTL的`sql`标签库允许在JSP页面上执行SQL查询和数据库事务。`<sql:update>`、`<sql:query>`和`<sql:transaction>`等标签简化了数据库操作。 6. **JSTL与EL表达式(Expression Language)**:JSTL...
jsp中的数据库的连接方式 15. 在jsp中,怎么实现按回车就可提交表单? 16. 在JSP中如何传递数组? 17. 按地址取图片? 18. JSP中如何上传图片到数据库字段? 19. 页面自动刷新? 20. 表单自动提交?...
表示层 JSP、HTML、DHTML、XML/XSL、JAVA BEAN、TAGLIB 流程控制层 通过一个特定的请求处理器JAVA类:RequestProcessor.java,将客户端的请求(如:http://localhost:6888/myshop/shp/cart 转化成某个事件(如:...
本文旨在探讨如何结合XML和JSP技术实现异构数据库的直接WEB访问。 #### 关键词 - Java - XML - Internet - 数据库连接 #### JSP/SERVLET与JDBC技术 JSP(Java Server Pages)是一种由Sun Microsystems开发的...
本系统利用JSP开发环境 tomcat 6.0 测试 其中查询部分均利用了XML转换 XSL显示, 数据库利用sql 2003 功能包括 数据添加 修改 删除 以及查询,适合初学JSP 和 XML的初学者。