浏览 3062 次
锁定老帖子 主题:Tomcat6.0数据源配置
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-06
这里是以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> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-03-07
tomcat的数据源是apache的 dbcp的数据源吧???
这个数据源速度不是很快..建议换成 proxool的数据源... 目前在 service.xml配置还是没有弄出来..不过在spring下面好配置多了. |
|
返回顶楼 | |
发表时间:2009-03-07
tzheng517 写道 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> |
|
返回顶楼 | |