隨筆-51  評論-14  文章-0  trackbacks-0
                   往往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)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 东平县| 台南市| 建昌县| 博兴县| 江口县| 靖西县| 济宁市| 闸北区| 荔浦县| 容城县| 泸溪县| 红安县| 凤山县| 县级市| 蒲江县| 嘉黎县| 雅江县| 盈江县| 丹巴县| 宜都市| 高密市| 宜春市| 卢湾区| 哈巴河县| 石河子市| 藁城市| 泾阳县| 惠水县| 郎溪县| 伊吾县| 玉溪市| 瓦房店市| 扎囊县| 来安县| 蓬安县| 新巴尔虎右旗| 义乌市| 汤阴县| 马龙县| 湟中县| 庄河市|