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日 于深圳