[转载]Tomcat5.0+MySql配置JDBC,DBCP,SSL

Tomcat5.0+MySql配置JDBC,DBCP,SSL
准备环境:

1.j2sdk-1_4_2-windows-i586.exe

//jdk

2.mysql-4.0.20d-win.zip

//m ysql数据库

3.mysqlcc-0.9.4-win32.zip

//mysqlGUI控制

4.jakarta-tomcat-5.0.27.exe

//tomcat服务器

5.mysql-connector-java-3.0.14-production.zip

//内含mysql驱动

安装步骤:

1.安装jdk

2.安装tomcat

3.安装mysql

4.安装mysqlcc

5.将驱动包解压,拷贝mysql-connector-java-3.0.14-production-bin.jar

到tomcat/common/lib下

或者下载mm.mysql-2.0.14-you-must-unjar-me.jar,

解压后拷贝其中的mm.mysql-2.0.14-bin.jar

Tomcat5.0配置 本例使用安装密码 198277

1.配置manager 管理应用程序

在conf/server.xml 中

添加如下:

...

    


限制IP访问配置



测试为:http://localhost:8080/manager/html

2、配置JDBCRealm容器管理安全,以mysql-4.0数据库为例

a.拷贝驱动mm.mysql-2.0.14-bin.jar到common/lib/下

b.在数据库ycg中建表

create table users 
(
  user_name         
  varchar(15) not null primary key,
  user_pass         
  varchar(15) not null
);

create table user_roles 
(
  user_name         
  varchar(15) not null,
  role_name         
  varchar(15) not null,
  primary key (user_name, role_name)
);


c.修改server.xml如下(默认数据库为root,无密码,如果有形如:

connectionURL="jdbc:mysql:
//localhost/authority?

user=dbuser&password=dbpass")
      


d.在数据库中添加入tomcat的默认配置数据:

471933.jpg

e.启动mysql,启动tomcat,此后tomcat将从数据库中读用户规则认证.默认的conf/tomcat-users.xml失效

3.DBCP的配置

a.设置

removeAbandonedtrue


可使失效的数据连接重新启用.

配套设置

removeAbandonedTimeout60


失效时间

如果要写入日志

设置

logAbandonedtrue


以上三个默认都是false

b.以mysql为例,配置数据连接池

c.配置新的用户与数据库,必须设定密码,空密码将导致连接失败

e.

指定root密码:

mysqladmin -u root -h localhost 
password "198277"


(需修改上面的jdbcrealm设置connectionURL="jdbc:mysql://localhost/ycg?user=root&password=198277")

命令mysql进入匿名连接到服务器

密码访问

shell> mysql -h host -u user -p
Enter password: ********
//如果root没有密码,以下是不成功的.(试过了)
 mysql> GRANT ALL PRIVILEGES ON *.*
 TO javauser@localhost 
    ->   IDENTIFIED BY 'javadude' 
	WITH GRANT OPTION;
mysql> create database javatest;
mysql> use javatest;
mysql> create table testdata
(
    ->   id int not null 
	auto_increment primary key,
    ->   foo varchar(25), 
    ->   bar int);

在conf/server.xml中
中添加
factoryorg.apache.commons.dbcp.
	  BasicDataSourceFactory

    <!-- Maximum number of dB connections 
	in pool. Make sure you
         configure your mysqld 
		 max_connections large enough to handle
         all of your db connections. 
		 Set to 0 for no limit.
         --&gt
    maxActive100

    <!-- Maximum number of idle dB
	connections to retain in pool.
         Set to 0 for no limit.
         --&gt
    maxIdle30

    <!-- Maximum time to wait for a 
	dB connection to become available
         in ms, in this example 10
		 seconds. An Exception is thrown if
         this timeout is exceeded. 
		 Set to -1 to wait indefinitely.
         --&gt
    maxWait10000

    <!-- MySQL dB username and
	password for dB connections  --&gt
    usernamejavauserpasswordjavadude

    <!-- Class name for the old mm.
	mysql JDBC driver - uncomment
	this entry and comment next
         if you want to use this driver
		 - we recommend using Connector/J though
    driverClassNameorg.gjt.mm.mysql.Driver
     --&gt
    
    <!-- Class name for the official
	MySQL Connector/J driver --&gt
    driverClassNamecom.mysql.jdbc.Driver
    
    <!-- The JDBC connection url for 
	connecting to your MySQL dB.
         The autoReconnect=true argument 
		 to the url makes sure that the
         mm.mysql JDBC Driver will 
		 automatically reconnect if mysqld closed the
         connection.  mysqld by default 
		 closes idle connections after 8 hours.
         --&gt
    urljdbc:mysql://localhost:3306
	 /javatest?autoReconnect=trueremoveAbandonedtrueremoveAbandonedTimeout60logAbandonedtrue


f.在web服务中调用.配置web.xml 如:

MySQL Test AppDB Connectionjdbc/TestDBjavax.sql.DataSourceContainer


g.测试用test.jsp


select id, foo, bar from testdata
DB Test

Results

Foo ${row.foo}
Bar ${row.bar}


h.新建web应用

下载jakarta-taglibs-standard-1.1.0

copy jstl.jar and standard.jar to your web app's WEB-INF/lib

DBTest/
    WEB-INF/
        web.xml
        lib/
            jstl.jar
            standard.jar
    test.jsp


拷贝到webapps/ 下

i.启动mysql,tomcat

访问:

http://localhost:8080/DBTest/test.jsp

显示:

Results
Foo hello
Bar 12345


4.ssl的配置,以jdk1.4.2为例

a.进入%JAVA_HOME%in

运行命令:keytool -genkey -alias tomcat -keyalg RSA

以tomcat 安装密码为198277,ketool设置密码为198277为例

输入keystore密码: 198277

您的名字与姓氏是什么?

[Unknown]: ycg

您的组织单位名称是什么?

[Unknown]: nju

您的组织名称是什么?

[Unknown]: nju

您所在的城市或区域名称是什么?

[Unknown]: nanjing

您所在的州或省份名称是什么?

[Unknown]: jiangsu

该单位的两字母国家代码是什么

[Unknown]: nd

CN=ycg, OU=nju, O=nju, L=nanjing, ST=jiangsu, C=nd 正确吗?

[否]: y

输入的主密码

(如果和 keystore 密码相同,按回车): 198277

b.在你的D:Documents and Settings的当前用户目录下可以找到.keystore文件.将其拷贝到conf/文件夹下.

c.在server.xml 中找到

<!--
    
    --&gt


去掉注释

添加配置字段:keystoreFile="/conf/.keystore" keystorePass="198277"

如:



d.测试为:

https://localhost:8443

e.在自己的程序中添加ssl认证方式为:

在web.xml 中添加

Success
/GETPOSTCONFIDENTIAL


f.用上提为例就是

修改web.xml 为

MySQL Test AppSuccess
/GETPOSTCONFIDENTIAL
DB Connectionjdbc/TestDBjavax.sql.DataSourceContainer


访问:

https://localhost:8443/DBTest/test.jsp

g.如果与2配置的jdbcRealm结合起来进行表单认证

先在user_roles表中添加user_name:ycg role_name:web-user

在users表中添加user_name:ycg user_pass:198277

然后在web.xml中添加

web-userBASICMy Member Area


修改后的web.xml如:

MySQL Test AppSuccess
/GETPOSTweb-userCONFIDENTIAL
BASICMy Member AreaDB Connectionjdbc/TestDBjavax.sql.DataSourceContainer


测试:

http://localhost:8080/DBTest/test.jsp

将通过ssl连接,并进行表单认证.用户密码可在user_roles,和users中添加.

5.中文乱码问题:

mysql 默认编码 iso

tomcat request 传输编码 iso

如果要显示中文

在*.jsp中添加



如果是数据传输中的乱码(如用servlet从mysql数据库读出的数据)用以下两个转码函数转码,如果不清楚由哪种编码转成哪种编码,就多尝试。

//转码GBK转ISO
    public String toISO(String input)
	{
        try
		{
                byte[] bytes = input.getBytes("GBK");
                return new String(bytes,"ISO8859-1");
        }catch(Exception ex) 
		{
        }
        return input;

    }
    
    //转码IS0转GBK
    public String toGBK(String input)
	{
        try {
            byte[] bytes = 
			input.getBytes("ISO8859-1");
            return new String(bytes,"GBK");
        }catch(Exception ex) {
        }
        return input;
    }

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/374079/viewspace-131969/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/374079/viewspace-131969/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值