我也是一个新手,只是把这二天在碰到的问题写出来,给其它和我同样的行者提供参考,由于是初学者,对许多概念,名词难免有许多不足之处,请指出并给予见谅。
关键字:
JSP TOMCAT 配置 环境 Bean Oracle 数据库连接
一、所需软件:
jdk1.5.0_03
下载地址:
安装路径默认为:C:/Program Files/Java/jdk1.5.0_03
jdk1.5.0_03文档
下载地址:
安装路径默认为: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_03
CLASSPATH=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>
在输入浏览器输入:http://127.0.0.1:端口号/
内容如下:
五、后记。
本人出生于80年代,自2001年一直从事WEB应用的设计、开发工作.
牧羊人2005年5月16日 于深圳
QQ:18272024
Mail:fxy1212@126.com
MSN:fxy1212@hotmail.com