下面介绍如何用SQLServer实现一个动态FAQ(常见问题及答案)网站。
首先建立一个数据库faq,其中的表faqs有字段id(int,自动增量,并设为主关键字)、subject(varchar,200)、answers(text)。这个表中可以存放一些编程知识的常见问题及答案。然后,在ControlPanel(控制面板)的ODBCDatasource模块中加入SystemDSN,取名faq,并指向faq数据库。创建一个JavaBean,名为faq.java,并保存在C:JBuilder4tomcatwebappstest目录下。
faq.java的内容如下:
packagetest;
importjava.sql.*;
publicclassfaq{
StringsDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
StringsConnStr="jdbc:odbc:faq";
Connectionconn=null;
ResultSetrs=null;
publicfaq(){
try{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundExceptione){
System.err.println("faq():"+e.getMessage());
}
}
publicResultSetexecuteQuery(Stringsql){
rs=null;
try{
conn=DriverManager.getConnection(sConnStr);
Statementstmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}
catch(SQLExceptionex){
System.err.println("aq.executeQuery:"+ex.getMessage());
}
returnrs;
}
}
用上一节介绍的方法编译faq.java以后,在jC:JBuilder4tomcatwebappstest目录下创建JSP文件faq.jsp,其内容如下:
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>我的FAQ!</title>
</head>
<body>
<p><b>这是我的FAQ!</b></p>
<%@pagelanguage="java"import="java.sql.*"%>
<jsp:useBeanid="workM"scope="page"class="test.faq"/>
<%
ResultSetRS=workM.executeQuery("SELECT*FROMfaqs");
Stringtt;
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所示.