jsp+xsl查询数据库

         往往JSP通常用来动态的生成HTML文件,来代替Servlet的作用,其实JSP还可以做很多事情,比如我以前提到的生成JPEG流,还可以用在XML文档中,很惊讶吧。
        通过一个例子简要叙述一下用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;
        下面是index.jsp文件(别担心,虽然扩展名是jsp,可它确实是XML):
<%@ 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>
            下面是与XML文档对应的XSLT文档cd.xlst:
<?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>

生成效果:
 


问题:我希望将JSP中的内容写到servlet中,同时在JSP中使用标签库将生成的xml与已有的xslt连接起来,这该怎么做?请达人们帮助解答,谢谢。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值