JSP是由Sun微系統公司於1999年6月推出的技術,是基於JavaServlet以及整個java體系的Web開發技術,利用這項技術可以建立先進、安全和跨平台的動態網站。
JSP 與ASP非常相似。兩者都提供在HTML 程式碼中混合某種程式碼、由語言引擎解釋執行程式碼的能力。在ASP或JSP 環境下,HTML程式碼主要負責描述資訊的顯示樣式,而程式碼則用來描述處理邏輯。 ASP下的程式語言是VBScript 之類的腳本語言,而JSP 使用的是Java。
TRS及其JavaBeans
TRS系統是國際上第一個採用「平行計算」演算法的中文全文檢索系統,其全文檢索引擎可提供關係型資料庫所沒有的效能,並可與關聯式資料庫協同使用;因為TRS可對文字內容建立全文索引,提供高效率的全文檢索功能。所以使用TRS可以大幅提高網站的查詢速度。
TRS JavaBeans是基於Java組件技術-JavaBeans開發的,具有良好的跨平台特性。本文將介紹利用JSP、TRS及JavaBeans建立一個Web的過程。
TRS JavaBeans配置步驟
以NT下WebLogic5.1.0為例說明。
1.安裝WebLogic5.1.0
2.修改startWebLogic.cmd
將「set PRE_CLASSPATH=」改為「set PRE_CLASSPATH=%TRSBean.jar的全路徑%;%TRSDemo.jar的全路徑%」。
例如:如果TRSBean.jar位於C:TRSJavaBeanslib目錄下,則將此語句改為:
set PRE_CLASSPATH=C:TRSJavaBeanslibTRSBean.jar
3.修改weblogic.properties
將語句:#weblogic.httpd.register.servlets=weblogic.servlet.ServletServlet前面的#號去掉。
將下列語句前的「#」號去掉:
# weblogic.httpd.register.*.jsp=
# weblogic.servlet.JSPServlet
#weblogic.httpd.initArgs.*.jsp=
# pageCheckSeconds=1,
# compileCommand=C:/java/bin/javac.exe,
# workingDir=D:/weblogic/myserver/classfiles,
# verbose=true
接著將“compileCommand=C:/java/bin/ javac.exe,”改為“compileCommand=JAVA_ PATH/bin/javac.exe,”,其中JAVA_PATH為實際所用JDK的安裝根目錄。
4.安裝DEMO
將TRSJavaBeans安裝套件的DEMO目錄全部複製到D:/weblogic/myserver/public_html目錄下。
完成以上配置後,我們即可進入設計開發階段。
開發範例
設資料庫為:「news.投資動態」,欄位為「標題」、「內容」、「日期」及「編號」(惟一性欄位)。
以顯示某項具體記錄的詳細內容為例,至於分頁顯示、全文檢索和BBS等,篇幅所限,不再贅述,有興趣的使用者可以自己試一試。實際運作結果可參考易信網(www.exin.net)或北京投資平台(www.bjinvest.gov.cn)。
jsp程式如下:
新聞
<%@ page import="com.eprobiti.TRS.*"%>
<%@ page import="java.util.*"%>
<%
String item_id = request.getParameter("id");
//參數id由URL或前一個檔案的表單隱藏域傳過來
String dbname,ip,port,username,password;
dbname = "news.北京新聞";
//TRS資料庫名字
ip="202.123.166.99"; //TRS伺服器IP
port="8888";//TRS伺服器端口
username="yourname";
// 可以檢索"news.北京新聞"的使用者名
password="yourpassword";
// 該使用者名稱對應的口令
String filter = "編號="+item_id;
//定義檢索條件
try {
if (TRSConn.connect(ip,port,username,password)){ }
//建立與TRS伺服器的連接
else {
out.println("Connection 連線失敗!n");
}
TRSRS = TRSConn.executeSelect(dbname,s1,"","", null, 0, 0, false);
// 執行查詢操作,產生記錄集
} catch(TRSException TRSe) {
out.println("ResultSet 連線失敗!n");
}
try {
TRSRS.moveFirst();
//記錄定位
%>
<%=TRSRS.getString("標題")%>
|
<%=TRSRS.getString("日期")%>
|
<%=TRSRS.getString("內容")%>
|
<%
TRSRS.close();
} catch(TRSException TRSe) {}
%>