Tomcat6.0数据源配置

tomcat6.0 数据源配置:
这里是以Mysql数据库为例,其他的数据库都是一样的配置
首先将mysql驱动拷贝到tomcat下的lib目录下。C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib
然后修改C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf下的context.xml文件,在里面添加如下代码:

在Context标签里添加一个属性 reloadable="true"
<WatchedResource>WEB-INF/web.xml</WatchedResource><!--这个有就不需要添加-->
<Resource name="jdbc/mysqlds" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000" username="root" password="admin" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/databasename"/>
下面解释一下各属性的含义:
name 表示指定的jndi名称 (这个名字这里可以随便写)
auth 表示认证方式,一般为Container
type 表示数据源床型,使用标准的javax.sql.DataSource
maxActive 表示连接池当中最大的数据库连接
maxIdle 表示最大的空闲连接数
maxWait 当池的数据库连接已经被占用的时候,最大等待时间
logAbandoned 表示被丢弃的数据库连接是否做记录,以便跟踪
username 表示数据库用户名
password 表示数据库用户的密码
driverClassName 表示JDBC DRIVER
url 表示数据库URL地址

下面以一个登陆示例来说明:
数据库中一个用户(User)表三个字段:userid,username,userpassword
新建一个web项目
建立一个包com.tomcattest包下建立三个类一个UserBean,DataBase,LoginServlet

Userbean.class的代码包含如下内容:

package com.tomcattest;

public class UserBean {

private int userid;
private String username;
private String userpassword;

public int getUserid() {
return userid;
}
public void setUserid(int userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpassword() {
return userpassword;
}
public void setUserpassword(String userpassword) {
this.userpassword = userpassword;
}

}

DataBase.class的代码如下:

package com.tomcattest;
import java.sql.SQLException;
import java.util.List;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

public class Database {
//下载后的DbUtils解压后,将commons-dbutils-1.1.jar导入项目
public boolean getUser(String sql){
List list=null;
try {
Context context=new InitialContext();
DataSource ds=(DataSource) context.lookup("java:/comp/env/jdbc/mysqlds"); // "java:/comp/env/"是固定写法,后面接的是context.xml中的Resource中name属性的值
QueryRunner query=new QueryRunner(ds); //这个是DbUtils下的类 DbUtils可以在apache的官方网站下载,在commons目录下,现在最新版本为1.1
list=(List)query.query(sql, new BeanListHandler(UserBean.class));
//BeanListHandler是DbUtils下的一个类,用于查询也还可以是MapListHandler
// list=(List)query.query(sql, new MapListHandler()); list里有多个map集合
//修改 添加 删除调用update方法
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return list.size()>0?true:false;
}
}

LoginServlet是一个Servlet,代码如下:

package com.tomcattest;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginServlet extends HttpServlet {


public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

String action=request.getParameter("action");
if(action.equals("CheckLogin")){
this.CheckLogin(request, response);
}

}


public void CheckLogin(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

request.setCharacterEncoding("gbk");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String name=request.getParameter("name");
String password=request.getParameter("password");
Database db=new Database();
String sql="select * from user where username='"+name+"' and userpassword='"+password+"'";
boolean b=db.getUser(sql);
if(b){
out.print("<script>alert('login success!');</script>");
}else{
out.print("<script>alert('fail success!');</script>");
}

}

}

最后将index.jsp页面改成如下即可:

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<form action="servlet/LoginServlet?action=CheckLogin" method="post">
<input type="text" name="name"></br>
<input type="password" name="password"></br>
<input type="submit">
</form>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值