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>
分享到:
相关推荐
【Tomcat 6.0 数据源配置详解】 在Java应用服务器如Tomcat 6.0中,数据源的配置是一项至关重要的任务,因为它允许应用程序通过JNDI(Java Naming and Directory Interface)查找并使用数据源来操作数据库。数据源...
要测试数据源配置是否正确,可以创建一个`test.jsp`页面,通过JNDI查找并获取数据源,然后连接数据库。以下是`test.jsp`的部分代码: ```jsp Context initContext = new InitialContext(); Context envContext = ...
### Tomcat 6.0 数据源配置详解 在Java Web开发中,数据库连接管理是非常重要的环节之一。为了提高效率并避免频繁地打开和关闭数据库连接,通常会采用配置数据源的方式来管理这些连接。本文将详细介绍如何在Tomcat ...
1. **创建数据源配置文件**:在Tomcat的`conf/server.xml`文件中,找到`<GlobalNamingResources>`标签,在其中添加数据源的配置。例如,创建一个名为`jdbc/myDataSource`的数据源: ```xml type="javax.sql....
Tomcat6.0数据源可以在context.xml文件下配置,也可以在web.xml下配置,本人建议在context.xml文件下配置,因为每当有改动,即时可以监测到,如果在web.xml下配置要重启才能监测到....
`Context`元素下的`Resource`和`ResourceLink`可以用来配置JNDI(Java Naming and Directory Interface)资源,如数据源和邮件会话。 10. **性能优化** 通过调整JVM参数(如`JAVA_OPTS`),设置内存大小,以及...
本文将详细讲解如何在Tomcat 6.0版本中配置JNDI(Java Naming and Directory Interface)数据源,这个过程与Tomcat 5.5版本基本相同。JNDI允许应用通过一个统一的接口来查找和访问资源,如数据库连接池,从而提高...
本实例是一个关于如何在Tomcat 6.0中配置和使用JNDI数据源的经典示例,包含了所需的JAR包、配置文件和SQL脚本。 首先,我们来看配置JNDI数据源的步骤。在Tomcat的`conf/server.xml`文件中,你需要添加一个新的`...
Tomcat 6.0数据库连接池驱动的使用,涉及到的主要知识点包括:数据库连接池的概念与作用,Tomcat内置的数据源实现(DBCP和C3P0),数据源的配置方法,JNDI的使用,以及在Java代码中获取和释放数据库连接。...
4. **JNDI(Java Naming and Directory Interface)**:提供了命名和目录服务,用于查找和管理资源,如数据源或邮件会话。 5. **安全管理**:支持角色基础的访问控制(RBAC),可以配置不同角色的权限。 6. **热部署...
”,则表明数据源配置成功。 **注意事项** - 配置时需确保MySQL驱动`mysql-connector-java.jar`已加入到Tomcat的`lib`目录中,否则会抛出找不到驱动的异常。 - `useSSL=false`是为了避免SSL连接问题,如果MySQL...
为了使Web应用能够访问到前面配置的数据源,我们需要在 `web.xml` 文件中添加一个 `<resource-ref>` 元素来引用该数据源。示例如下: ```xml <description>DBConnection <res-ref-name>jdbc/mysql <res-type>...
- `conf/context.xml`用于配置特定应用的上下文,如数据源、session配置等。 七、安全管理 - 在`conf/tomcat-users.xml`中添加用户和角色,以实现基于角色的访问控制。 - 配置`conf/server.xml`中的 Realm 元素,如...
这里配置了一个名为`jdbc/sql`的数据源,使用了Microsoft SQL Server的JDBC驱动,连接到本地1433端口的SQL Server数据库,并设置了最大活动连接数(maxActive)、最大空闲连接数(maxIdle)和最大等待时间(maxWait...
本教程将详细讲解如何在Tomcat 6.0中配置数据源(DBCP)以及如何利用JNDI(Java Naming and Directory Interface)进行服务查找。首先,我们需要了解这两个概念的基础知识。 DBCP(Database Connection Pool)是...
这里提供了使用JNDI配置数据源的实例,涵盖了不同数据库(如MySQL、Oracle等)的连接池配置,帮助开发者快速集成数据库。 八、SSL配置(ssl-howto.html) SSL(Secure Socket Layer)用于加密网络通信,确保数据...
`res-ref-name`的值必须与`context.xml`中`name`属性的值一致,即`jdbc/test`,确保应用能够正确地找到并使用配置好的数据源。 此外,为了使Tomcat能够识别并使用MySQL的JDBC驱动,我们需要将对应的jar包(如`mysql...