隨筆-51  評(píng)論-14  文章-0  trackbacks-0
                   往往JSP通常用來動(dòng)態(tài)的生成HTML文件,來代替Servlet的作用,其實(shí)JSP還可以做很多事情,比如我以前提到的生成JPEG流,還可以用在XML文檔中,很驚訝吧。
                  通過一個(gè)例子簡(jiǎn)要敘述一下用JSP生成XML文件,我們要做的是把一個(gè)數(shù)據(jù)庫的內(nèi)容寫到一個(gè)XML文件中,并且以HTML的格式顯示出來。
                  數(shù)據(jù)庫的結(jié)構(gòu)如下:
          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文件(別擔(dān)心,雖然擴(kuò)展名是jsp,可它確實(shí)是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";//數(shù)據(jù)庫服務(wù)器地址
          String port = "3306";//數(shù)據(jù)庫服務(wù)器端口
          String db = "music";//數(shù)據(jù)庫名
          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;//結(jié)果集

          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文檔對(duì)應(yīng)的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中的內(nèi)容寫到servlet中,同時(shí)在JSP中使用標(biāo)簽庫將生成的xml與已有的xslt連接起來,這該怎么做?請(qǐng)達(dá)人們幫助解答,謝謝。
          posted on 2008-04-06 19:26 Hank1026 閱讀(463) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2008年4月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          百度博客

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 岱山县| 江源县| 灵丘县| 景泰县| 青龙| 包头市| 黔西县| 上饶县| 麟游县| 绥德县| 西青区| 睢宁县| 炎陵县| 灵璧县| 阳东县| 吴旗县| 简阳市| 双峰县| 高密市| 安徽省| 连山| 彰化县| 昭通市| 内黄县| 南城县| 饶阳县| 泸水县| 卫辉市| 九龙城区| 井研县| 龙井市| 页游| 平原县| 屏东县| 安泽县| 青铜峡市| 阜城县| 山西省| 保德县| 上蔡县| 尼木县|