js 我也是一個新手,只是把這二天在碰到的問題寫出來,給其它和我同樣的行者提供參考,由於是初學者,對許多概念,名詞難免有許多不足之處,請指出並給予見諒。
關鍵字:JSP TOMCAT 配置 環境 Bean Oracle 資料庫連接
一、所需軟體:jdk1.5.0_03 下載地址:http://192.18.97.107/ECom/EComTicketServlet/BEGIN714BEC085BF81689F1CF58A75F4A7A9A/-2147483648/856515651/1/615302/615146/856515651/2ts+/westCoastFSEND/jdk-1.5.0_03-oth-JPR/jdk-1.5.0_03-oth-JPR:2/jdk-1_5_0_03-windows-i586-p.exe安裝路徑預設為:C:\Program Files\Java\jdk1.5.0_03
jdk1.5.0_03文檔 下載地址:http://192.18.97.47/ECom/EComTicketServlet/BEGIN4485078F3F07F886D616C10A357249D3/-2147483648/856519743/1/531806/531794/856519743/2ts+/westCoastFSEND/jdk-1.5.0-doc-oth-JPR/jdk-1.5.0-doc-oth-JPR:1/jdk-1_5_0-doc.zip安裝路徑預設為:C:\Program Files\Java\jre1.5.0_03
jakarta-tomcat-5.0.1下載地址:略安裝路徑為:C:\Tomcat 5.0
ORACLE9i企業版(中文)安裝路徑為預設:D:\oracle安裝方式可參考其它資料,也可按其預設安裝。
二、運行環境:Windows 2000 Server
三、開發工具:Jcreator 2.5(編寫、調試java用)Dreamweaver mx(設計頁面用)PLSQL Developer(Oracle資料庫用)
四、配置過程:安裝好jdk及tomcat後,設定jdk系統內容變數(注意是系統內容變數,還有一個使用者環境變數):
JAVA_HOME=C:\Program Files\Java\jdk1.5.0_03CLASSPATH=Files\Java\jdk1.5.0_03\jre\lib\rt.jar;.;PATH=%JAVA_HOME%\bin;如安裝好ORACLE後PATH將變成:D:\oracle\ora90\bin;D:\oracle\ora90\Apache\Perl\5.00503\bin\mswin32-x86;C:\Program Files\Oracle\jre\1.1.8\bin;%JAVA_HOME%\bin;
設定Tomcat環境變數:TOMCAT_HOME=C:\Tomcat 5.0
重新啟動電腦。
測試TOMCAT:在瀏覽器中輸入:http://127.0.0.1:連接埠號碼/如看到以上畫面,即tomcat運行正常。
設定TOMCAT虛擬目錄:開啟C:\Tomcat 5.0\conf下的server.xml,找到</Host>,在之前加入: <Context path="/web" docBase="d:\tnf" debug="0"/>path為虛擬目錄名稱,即輸入:http://127.0.0.1:連接埠號碼/web(如上)docBase為虛擬目錄檔案所在的路徑,如上。
設定完成後重新關閉Tomcat後重新啟動Tomcat.
在瀏覽器中輸入:http://127.0.0.1:連接埠號碼/ manager/html,(要求輸入密碼時輸入你安裝時所設定的使用者名稱和密碼,使用者名稱預設的為:admin),也可以通過輸入:http://127.0.0.1:連接埠號碼,然後在右邊選擇Administration下的Tomcat Manager。
將會顯示如下畫面: 並可看到剛才設定的虛擬目錄。
設定ORACLE資料庫驅動:開啟:D:\oracle\ora90\jdbc\lib,將classes12.jar檔案複製一份到:C:\Program Files\Java\jdk1.5.0_03\jre\lib\ext再複製一份到:C:\Tomcat 5.0\common\classes
然後重新啟動TOMCAT,如果不行,建議重新啟動電腦。
測試自己編寫的帶資料庫連接的jsp檔案(檔案名稱為:oracle_b.jsp):<%@ page contentType="text/html;charset=gb2312" %> <%@ page import="java.sql.*"%><?xml version="1.0" encoding="gb2312"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>ORACLE測試</title></head>
<body><% String OracleDBDriver="oracle.jdbc.driver.OracleDriver"; String DBUrl="jdbc:oracle:thin:@127.0.0.1:1521:ERPDATA"; //1521為ORACLE資料庫的預設連接埠,ERPDATA為安裝ORACLE填寫的SID,也就是資料庫名稱 String UserID="scott"; String UserPWD="tiger"; Connection conn=null; Statement stmt=null; ResultSet rs=null; try { Class.forName(OracleDBDriver); } catch(ClassNotFoundException ex) { System.out.println("Class.forname:"+ex); } conn=DriverManager.getConnection(DBUrl,UserID,UserPWD); //stmt=conn.prepareStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); stmt=conn.createStatement(); String sql="select * from EMP"; rs = stmt.executeQuery(sql); out.print("<table border>"); out.print("<tr>"); out.print("<th width=100>"+"UserID"); out.print("<th width=50>"+"UserName"); out.print("<tr>"); try { while(rs.next()) { out.print("<tr>"); int n=rs.getInt(1); out.print("<td>"+n+"</td>"); String e=rs.getString(2); out.print("<td>"+e+"</td>"); out.print("</tr>"); } } catch(SQLException ex) { System.err.println("ConnDB.Main:"+ex.getMessage()); }
out.print("</table>"); rs.close(); %> </body></html>
可複製以上內容到oracle_b.jsp檔案,儲存在你的虛擬目錄檔案夾中。在瀏覽器中輸入:http://127.0.0.1/web/oracle_B.jsp可見到以下內容:
JSP中使用Bean。在虛擬目錄(如:d\tnf)下建立WEB-INF\classes檔案夾,即:d:\tnf\WEB-INF\classes用Jcreator或其它工具在編寫以下內容:/** * <p>資料庫連接專用包 </p> * <p>Copyright: 牧羊人 Copyright (c) 2005</p> * <p>Company:牧羊人 </p> * @by :牧羊人 18272024 websuper@126.com * @version 1.0 */
package DB;
import java.sql.*;
public class ConnDB{ String OracleDBDriver="oracle.jdbc.driver.OracleDriver"; String DBUrl="jdbc:oracle:thin:@127.0.0.1:1521:ERPDATA"; String UserID="scott"; String UserPWD="tiger"; Connection conn=null; Statement stmt=null; ResultSet rs=null;
//載入資料庫驅動....public ConnDB(){ try { Class.forName(OracleDBDriver); } catch(ClassNotFoundException e) { System.err.println("ConnDB():"+e.getMessage()); }}
//insert資料public void executeInsert(String sql){ try { conn=DriverManager.getConnection(DBUrl,UserID,UserPWD); stmt=conn.createStatement(); stmt.executeUpdate(sql); stmt.close(); conn.close(); } catch(SQLException ex) { System.err.println("ConnDB.executeUpdate:"+ex.getMessage()); }}
//查詢資料public ResultSet executeQuery(String sql){ try { conn=DriverManager.getConnection(DBUrl,UserID,UserPWD); stmt=conn.createStatement(); //stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); rs=stmt.executeQuery(sql); } catch(SQLException exc) { System.err.println("ConnDB.executeQuery:"+exc.getMessage()); } return rs;}
/**public static void main(String args[]){ ConnDB conn=new ConnDB(); String sql="select * from EMP"; ResultSet rs=conn.executeQuery(sql); try { while(rs.next()) { System.out.print(rs.getInt(1)+" "); System.out.print(rs.getString(2)+" "); System.out.print(rs.getString(3)+" "); System.out.print(rs.getInt(4)+" "); System.out.println(rs.getDate(5)); } } catch(SQLException ex) { System.err.println("ConnDB.Main:"+ex.getMessage()); }}**/
}
然後將檔案ConnDB.java儲存在d:\tnf\WEB-INF\classes中。然後編譯成class位元組碼檔案。
注意:package 後面跟的DB,編譯成class位元組後將產生一個新的檔案夾,和package緊跟的(如DB)相同,建立不要更改其名稱,最好同package後的名稱一致。我曾經被這個問題搞了好幾天。
然後建立oracle.jsp檔案,內容如下:<%@ page contentType="text/html;charset=gb2312" %> <%@ page import="java.sql.*"%> <jsp:useBean id="conn" class="DB.ConnDB" scope="page"/><?xml version="1.0" encoding="gb2312"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>ORACLE測試</title></head>
<body><% /**String OracleDBDriver="oracle.jdbc.driver.OracleDriver"; String DBUrl="jdbc:oracle:thin:@192.168.1.15:1521:ERPDATA"; String UserID="scott"; String UserPWD="tiger"; Connection conn=null; Statement stmt=null; ResultSet rs=null; Class.forName(OracleDBDriver); conn=DriverManager.getConnection(DBUrl,UserID,UserPWD); //stmt=conn.prepareStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); stmt=conn.createStatement(); **/ String sql="select * from EMP"; ResultSet rs = conn.executeQuery(sql); out.print("<table border>"); out.print("<tr>"); out.print("<th width=100>"+"UserID"); out.print("<th width=50>"+"UserName"); out.print("<tr>"); while(rs.next()) { out.print("<tr>"); String n=rs.getString(1); out.print("<td>"+n+"</td>"); String e=rs.getString(2); out.print("<td>"+e+"</td>"); out.print("</tr>"); }
out.print("</table>"); rs.close(); //String sql="insert into SystemUserTable values("+"'"+AllRown+"','操作員','1234','02',0)"; //rs=stmt.executeUpdate(sql); //rs.close;%> </body></html>
牧羊人2005年5月16日 於深圳