初涉世道
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
閱讀(460)
評論(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.?數據庫連接池簡介(13351)
2.?getServlet().getServletContext().getRealPath("/");與request.getRealPath("");(7639)
3.?java 生成圖片縮略圖(7536)
4.?html:file標簽的使用(5658)
5.?使用COOKIE登錄驗證(轉載)(5204)
評論排行榜
1.?getServlet().getServletContext().getRealPath("/");與request.getRealPath("");(3)
2.?使用COOKIE登錄驗證(轉載)(3)
3.?html:file標簽的使用(2)
4.?bean:define標簽用法(1)
5.?div 緩慢下拉效果(1)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 Hank1026
主站蜘蛛池模板:
东平县
|
台南市
|
建昌县
|
博兴县
|
江口县
|
靖西县
|
济宁市
|
闸北区
|
荔浦县
|
容城县
|
泸溪县
|
红安县
|
凤山县
|
县级市
|
蒲江县
|
嘉黎县
|
雅江县
|
盈江县
|
丹巴县
|
宜都市
|
高密市
|
宜春市
|
卢湾区
|
哈巴河县
|
石河子市
|
藁城市
|
泾阳县
|
惠水县
|
郎溪县
|
伊吾县
|
玉溪市
|
瓦房店市
|
扎囊县
|
来安县
|
蓬安县
|
新巴尔虎右旗
|
义乌市
|
汤阴县
|
马龙县
|
湟中县
|
庄河市
|