下面介紹如何用SQL Server實現一個動態FAQ(常見問題及答案)網站。 首先建立一個數據庫faq,其中的表faqs有字段id(int,自動增量,并設為主關鍵字)、subject(varchar,200)、answers(text)。這個表中可以存放一些編程知識的常見問題及答案。然后,在Control Panel(控制面板)的ODBC Datasource模塊中加入System DSN,取名faq,并指向faq數據庫。創建一個JavaBean,名為faq.java,并保存在C:\JBuilder4\tomcat\webapps\test目錄下。 faq.java 的內容如下: package test; import java.sql.*; public class faq { String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver"; String sConnStr = "jdbc:odbc:faq"; Connection conn = null; ResultSet rs = null; public faq() { try { Class.forName(sDBDriver); } catch(java.lang.ClassNotFoundException e) { System.err.println("faq(): " + e.getMessage()); } } public ResultSet executeQuery(String sql) { rs = null; try { conn = DriverManager.getConnection(sConnStr); Statement stmt = conn.createStatement(); rs = stmt.executeQuery(sql); } catch(SQLException ex) { System.err.println("aq.executeQuery: " + ex.getMessage()); } return rs; } } 用上一節介紹的方法編譯faq.java以后,在jC:\JBuilder4\tomcat\webapps\test目錄下創建JSP文件faq.jsp,其內容如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>我的FAQ !</title> </head> <body> <p><b>這是我的FAQ!</b></p> <%@ page language="java" import="java.sql.*" %> <jsp:useBean id="workM" scope="page" class="test.faq" /> <% ResultSet RS = workM.executeQuery("SELECT * FROM faqs"); String tt; while (RS.next()) { tt = RS.getString("Answer"); out.print("<LI>" + RS.getString("Subject") + "</LI>"); out.print("<pre>" + tt + "</pre>"); } RS.close(); %> 在瀏覽器的地址欄中鍵入http://localhost:8080/test/faq.jsp,faq.jsp調用JavaBean,從數據庫中讀出內容并輸出,得到結果如圖5所示.
|