关于动态网站的配置

沉默的牧羊者 2016-12-28 03:31:08
最近在学习JSP网站开发,参考了其他人的作品,但是一直无法配置成功。

<Context path="/Library" docBase="Library"
debug="5" reloadable="true" crossContext="true" workDir="">
<Resource name="jdbc/book"
auth="Container"
type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="system" password="12345678"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:Library"/>
</Context>

其中有一点是将上述代码放到tomcat的server.xml中,我放上去后依旧无法打开网站。

首先我想问一下,若是想让上面代码有效的话,是不是第一步要将下列的server location设置为第二项?



其次,我想问一下,若是想让上面代码有效的话,是不是要将项目放到tomcat下的webapps中。

最后,我想问一下,数据源连接池是什么意思,有什么作用,如何将数据源连接池换成普通的DAO?
...全文
210 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
沉默的牧羊者 2016-12-31
  • 打赏
  • 举报
回复
沉默的牧羊者 2016-12-31
  • 打赏
  • 举报
回复
引用 4 楼 lishunwen0825 的回复:
数据库配置文件:db.properties
#SQL Server jdbc
jdbc.dbDriver=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.dbUrl=jdbc:sqlserver://localhost:1433;DatabaseName=test

#ODBC
#odbc.dbDriver=sun.jdbc.odbc.JdbcOdbcDrive
#odbc.dbUrl=jdbc:odbc:test

#Oracle
#jdbc.dbDriver=oracle.jdbc.driver.OracleDriver
#jdbc.dbUurl=jdbc:oracle:thin:@localhost:1521:myorcl

jdbc.dbUser=system
jdbc.dbPswd=12345678


DBManager.java
import java.sql.*;
import java.util.Properties;
import java.io.InputStream;
import java.io.IOException;

public class DBManager {

private static String propFileName = "/com/DBmanager/db.properties";
private static Properties config = new Properties();
private static String dbDriver = null;
private static String dbUrl = null;
private static String dbUser = null;
private static String dbPswd = null;

static {
try {
InputStream in = DBManager.class.getResourceAsStream(propFileName);
config.load(in);
//System.out.println("读取文件成功");
} catch (Throwable t) {
//System.out.println("读取文件失败");
t.printStackTrace();
throw new ExceptionInInitializerError();
}
}
public static Connection getConnection(){
Connection conn = null;
try {
dbDriver = config.getProperty("jdbc.dbDriver");
dbUrl = config.getProperty("jdbc.dbUrl");
dbUser = config.getProperty("jdbc.dbUser");
dbPswd = config.getProperty("jdbc.dbPswd");
dbUrl = config.getProperty("jdbc.dbUrl");
Class.forName(dbDriver);
conn=DriverManager.getConnection(dbUrl,dbUser,dbPswd);
} catch (SQLException e) {
System.out.println("数据库连接失败!");
//e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return conn;
}
public static void CloseConnection(Connection conn,PreparedStatement pStat)
{
try {
pStat.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void CloseConnection(Connection conn,PreparedStatement pStat,ResultSet rs)
{
try {
rs.close();
pStat.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static ResultSet ExcuteQuery(String sql)
{
ResultSet rs=null;
Connection conn=DBManager.getConnection();
PreparedStatement pStat=null;
try {
pStat=conn.prepareStatement(sql);
rs=pStat.executeQuery();
} catch (SQLException e) {
System.out.println("数据库连接失败!");
e.printStackTrace();
}
return rs;
}
public static int ExcuteUpdate(String sql,Object Obj[])
{
int j=0;
Connection conn=DBManager.getConnection();
PreparedStatement pStat=null;
try {
pStat=conn.prepareStatement(sql);
for(int i=0;i<Obj.length;i++)
{
pStat.setObject(i+1, Obj[i]);
}
j=pStat.executeUpdate();
//System.out.println("更新成功,更新的行数为:"+j);

} catch (SQLException e) {
e.printStackTrace();
}
return j;
}
public static int ExcuteUpdate(String sql,Object Obj[],int type[])
{
int j=0;
Connection conn=DBManager.getConnection();
PreparedStatement pStat=null;
try {
pStat=conn.prepareStatement(sql);
for(int i=0;i<Obj.length;i++)
{
switch(type[i])
{
case 1:
pStat.setString(i+1, (String)Obj[i]);
break;
case 2:
pStat.setInt(i+1, (Integer)Obj[i]);
break;
}
}
j=pStat.executeUpdate();
//System.out.println("更新成功,更新的行数为:"+j);

} catch (SQLException e) {
e.printStackTrace();
}
return j;
}
/**
*
* @param sql
* @param Obj
* @return ResultSet
*/
public static ResultSet ExcuteQueryBySql(String sql,Object Obj[])
{
ResultSet rs=null;
Connection conn=DBManager.getConnection();
PreparedStatement pStat=null;
try {
pStat=conn.prepareStatement(sql);
for(int i=0;i<Obj.length;i++)
{
pStat.setObject(i+1, Obj[i]);
}
rs=pStat.executeQuery();
}catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
public static ResultSet ExcuteQueryBySql(String sql,Object Obj[],int type[])
{
ResultSet rs=null;
Connection conn=DBManager.getConnection();
PreparedStatement pStat=null;
try {
pStat=conn.prepareStatement(sql);
for(int i=0;i<Obj.length;i++)
{
switch(type[i])
{
case 1:
pStat.setString(i+1, (String)Obj[i]);
break;
case 2:
pStat.setInt(i+1, (Integer)Obj[i]);
break;
}
}
rs=pStat.executeQuery();
}catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
/**
* Statement 返回 ResultSet 的方法
* @param sql
* @return
*/
public static ResultSet ExcuteBySql(String sql)
{
ResultSet rs=null;
Connection conn=DBManager.getConnection();
Statement pStat=null;
try {
pStat=conn.createStatement();
rs=pStat.executeQuery(sql);
}catch (SQLException e) {
e.printStackTrace();
}
return rs;
}

}


我的是sqlserver数据库,oracle都差不多,两个数据库我都在用,oracle还需要引用下面这两个文件
import oracle.jdbc.driver.OracleResultSet;
import oracle.sql.CLOB;




这是我这边的配置

在Tomcat中的server.xml的最后</HOST>前添加


<Context path="/BookManage" docBase="BookManage"
debug="5" reloadable="true" crossContext="true" workDir="">
<Resource name="jdbc/book"
auth="Container"
type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="system" password="initial"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@192.168.47.16:1521:bookmanage"/>
</Context>


在项目的web.xml中添加
 
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/book</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>


结果还是配置不成功,出现以下的状况



应该如何解决?
如是我闻2012 2016-12-29
  • 打赏
  • 举报
回复
数据库配置文件:db.properties
#SQL Server jdbc
jdbc.dbDriver=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.dbUrl=jdbc:sqlserver://localhost:1433;DatabaseName=test

#ODBC
#odbc.dbDriver=sun.jdbc.odbc.JdbcOdbcDrive
#odbc.dbUrl=jdbc:odbc:test

#Oracle
#jdbc.dbDriver=oracle.jdbc.driver.OracleDriver
#jdbc.dbUurl=jdbc:oracle:thin:@localhost:1521:myorcl

jdbc.dbUser=system
jdbc.dbPswd=12345678
DBManager.java
import java.sql.*;
import java.util.Properties;   
import java.io.InputStream;
import java.io.IOException;

public class DBManager {

	private static String propFileName = "/com/DBmanager/db.properties";
	private static Properties config = new Properties();
	private static String dbDriver = null;
	private static String dbUrl = null;
	private static String dbUser = null;
	private static String dbPswd = null;

	static {
		try {
			InputStream in = DBManager.class.getResourceAsStream(propFileName);
			config.load(in);
			//System.out.println("读取文件成功");
		} catch (Throwable t) {
			//System.out.println("读取文件失败");
			t.printStackTrace();
			throw new ExceptionInInitializerError();
		}
	}
	public static Connection getConnection(){
		Connection conn = null;
		try {
			dbDriver = config.getProperty("jdbc.dbDriver");
			dbUrl = config.getProperty("jdbc.dbUrl");
			dbUser = config.getProperty("jdbc.dbUser");
			dbPswd = config.getProperty("jdbc.dbPswd");
			dbUrl = config.getProperty("jdbc.dbUrl");
			Class.forName(dbDriver);
			conn=DriverManager.getConnection(dbUrl,dbUser,dbPswd);
		} catch (SQLException e) {
			System.out.println("数据库连接失败!");
			//e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		return conn;
	}
	public static void CloseConnection(Connection conn,PreparedStatement pStat)
	{
		try {
			pStat.close();
			conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}	
	}
	public static void CloseConnection(Connection conn,PreparedStatement pStat,ResultSet rs)
	{
		try {
			rs.close();
			pStat.close();
			conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}	
	}
	public static ResultSet ExcuteQuery(String sql)
	{
		ResultSet rs=null;
		Connection conn=DBManager.getConnection();
		PreparedStatement pStat=null;
		try {
			pStat=conn.prepareStatement(sql);
			rs=pStat.executeQuery();
		} catch (SQLException e) {
			System.out.println("数据库连接失败!");
			e.printStackTrace();
		}
		return rs;
	}
    public static int ExcuteUpdate(String sql,Object Obj[])
    {
    	int j=0;
    	Connection conn=DBManager.getConnection();
		PreparedStatement pStat=null;
		try {
			pStat=conn.prepareStatement(sql);
			for(int i=0;i<Obj.length;i++)
			{
				pStat.setObject(i+1, Obj[i]);		
			}
			j=pStat.executeUpdate();
			//System.out.println("更新成功,更新的行数为:"+j);
			
		} catch (SQLException e) {
			e.printStackTrace();
		}  	
		return j;
    }
    public static int ExcuteUpdate(String sql,Object Obj[],int type[])
    {
    	int j=0;
    	Connection conn=DBManager.getConnection();
		PreparedStatement pStat=null;
		try {
			pStat=conn.prepareStatement(sql);
			for(int i=0;i<Obj.length;i++)
			{
				switch(type[i])
				{
				  case 1:
				      pStat.setString(i+1, (String)Obj[i]);	
				      break;
				  case 2:
					  pStat.setInt(i+1, (Integer)Obj[i]);
					  break;
				}	
			}
			j=pStat.executeUpdate();
			//System.out.println("更新成功,更新的行数为:"+j);
			
		} catch (SQLException e) {
			e.printStackTrace();
		}  	
		return j;
    }
    /**
     * 
     * @param sql
     * @param Obj
     * @return ResultSet
     */
    public static ResultSet ExcuteQueryBySql(String sql,Object Obj[])
    {
    	ResultSet rs=null;
    	Connection conn=DBManager.getConnection();
		PreparedStatement pStat=null;
		try {
			pStat=conn.prepareStatement(sql);
			for(int i=0;i<Obj.length;i++)
			{
				pStat.setObject(i+1, Obj[i]);		
			}
			rs=pStat.executeQuery();
		}catch (SQLException e) {
			e.printStackTrace();
		}
    	return rs;
    }
    public static ResultSet ExcuteQueryBySql(String sql,Object Obj[],int type[])
    {
    	ResultSet rs=null;
    	Connection conn=DBManager.getConnection();
		PreparedStatement pStat=null;
		try {
			pStat=conn.prepareStatement(sql);
			for(int i=0;i<Obj.length;i++)
			{
				switch(type[i])
				{
				  case 1:
					  pStat.setString(i+1, (String)Obj[i]);	
					  break;
				  case 2:
					  pStat.setInt(i+1, (Integer)Obj[i]);
					  break;
				}
			}
			rs=pStat.executeQuery();
		}catch (SQLException e) {
			e.printStackTrace();
		}
    	return rs;
    }
    /**
     * Statement 返回 ResultSet 的方法
     * @param sql
     * @return
     */
    public static ResultSet ExcuteBySql(String sql)
    {
    	ResultSet rs=null;
    	Connection conn=DBManager.getConnection();
		Statement pStat=null;
		try {
			pStat=conn.createStatement();
			rs=pStat.executeQuery(sql);
		}catch (SQLException e) {
			e.printStackTrace();
		}
    	return rs;
    }

}
我的是sqlserver数据库,oracle都差不多,两个数据库我都在用,oracle还需要引用下面这两个文件 import oracle.jdbc.driver.OracleResultSet; import oracle.sql.CLOB;
bcsflilong 2016-12-29
  • 打赏
  • 举报
回复
引用 2 楼 Zelea 的回复:
[quote=引用 1 楼 bcsflilong 的回复:] 你百度一下 tomcat如何发布工程 最后,我想问一下,数据源连接池是什么意思,有什么作用,如何将数据源连接池换成普通的DAO? 数据连接池你可以理解为JDBC的替代
那么如何将数据连接池再转化为JDBC??[/quote]程序里不调用连接池 自己写JDBC就好
沉默的牧羊者 2016-12-28
  • 打赏
  • 举报
回复
引用 1 楼 bcsflilong 的回复:
你百度一下 tomcat如何发布工程 最后,我想问一下,数据源连接池是什么意思,有什么作用,如何将数据源连接池换成普通的DAO? 数据连接池你可以理解为JDBC的替代
那么如何将数据连接池再转化为JDBC??
bcsflilong 2016-12-28
  • 打赏
  • 举报
回复
你百度一下 tomcat如何发布工程 最后,我想问一下,数据源连接池是什么意思,有什么作用,如何将数据源连接池换成普通的DAO? 数据连接池你可以理解为JDBC的替代

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧