初涉世道
BlogJava
首页
新随笔
联系
聚合
管理
随笔-51 评论-14 文章-0 trackbacks-0
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连接起来,这该怎么做?请达人们帮助解答,谢谢。
posted on 2008-04-06 19:26
Hank1026
阅读(459)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
<
2008年4月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(2)
给我留言
查看公开留言
查看私人留言
随笔分类
Ext学习积累(1)
每日积累(35)
随笔档案
2008年9月 (1)
2008年8月 (4)
2008年7月 (17)
2008年6月 (17)
2008年5月 (3)
2008年4月 (6)
2008年3月 (3)
百度博客
初涉世道
搜索
最新评论
1. re: 使用COOKIE登录验证(转载)
fsfsdvsdfv
--vfdgv
2. re: PDF文件内嵌到html页面
评论内容较长,点击标题查看
--方心如
3. re: bean:define标签用法[未登录]
fdasfa
--ccc
4. re: 使用COOKIE登录验证asd(转载)
asdasd
--asdas
5. re: java 生成图片缩略图
11
--ss
阅读排行榜
1. 数据库连接池简介(13346)
2. getServlet().getServletContext().getRealPath("/");与request.getRealPath("");(7622)
3. java 生成图片缩略图(7528)
4. html:file标签的使用(5642)
5. 使用COOKIE登录验证(转载)(5197)
评论排行榜
1. getServlet().getServletContext().getRealPath("/");与request.getRealPath("");(3)
2. 使用COOKIE登录验证(转载)(3)
3. html:file标签的使用(2)
4. bean:define标签用法(1)
5. div 缓慢下拉效果(1)