tomcat基本配置
1.端口修改:在conf下的server.xml中修改<Connector port="8080" ......
2.登录控制台:在admin和manager下的web.xml中会发现role-name 分别是admin和manager,因此需要在conf的tomcat-user.xml中配置这2个角色和用户。
3部署:有4种方式分别如下,使用控制台部署、修改server.xml文件部署web应用、利用tomcat自动部署(直接复制到webapp文件夹下,tomcat就会自动加载该web应用)、增加用户的部署文件(在Catalina/localhost下新建自己的xml文件,里面加上<Context......></Context>).
4.tomcat数据源的配置
数据库连接池的解决方案是:当应用程序启动时,系统主动的建立足够的数据连接,并将这些链接组成一个连接池。每次应用程序请求连接数据库连接时,无须重新打开连接,而是从池中取出已有的链接使用,使用完后,不再关闭数据库连接,而是直接将连接归还给连接池。通过使用连接池将大大提高程序运行效率对于共享资源的情况,有一个通用的设计模式:资源池(Resource Pool),用于解决资源频繁的请求,释放所造成的性能的下降。JDBC2.0规范引入了连接池技术。数据库连接池是Connection对象的工厂。数据库连接池的常用的参数如下:
> 数据库的初始连接数
> 连接池的最大连接数
> 连接池的最小连接数
> 连接池每次增加的容量
JDBC的数据库连接池使用javax.sql.DataSource来表示,DataSource只是一个接口,该接口通常由
商用服务器(如WebLogic、WebSphere)等提供实现,也有一些开源组织提供实现(DBCP和C3P0等)
DBCP数据源
需要commons-dbcp.jar(连接池的实现依赖库)、commons-pool.jar(连接池的实现)、commons-collections.jar
C3P0数据源
效果比上面的要好,Hibernate就推荐使用它,而且它还可以自动的清理不再使用的Connection
和Statement、ResultSet,如要使用该连接池,要在系统中增加如下jar文件
> c3p0-0.9.1.2.jar:C3P0连接池的实现
下载地址:登录http://sourceforge.net/projects/c3p0/站点下载最新版本,下载后得到一个
c3p0-0.9.1.2.bin.zip文件(版本号可能有区别)。
//创建连接池实例
ComboPooledDataSource ds = new ComboPooledDataSource();
//设置连接池连接数据库所需的驱动
ds.setDriverClass("com.mysql.jdbc.Driver");
//设置连接数据库的所需驱动
ds.setJdbcUrl("jdbc:mysql://localhost:3006/javaee");
//设置连接数据的用户名
ds.setUser("root");
//密码
ds.setPassword("123456");
//最大连接数
ds.setMaxPoolSize(40);
//最下连接数
ds.setMinPoolSize(2);
//初始连接数
ds.setInitialPoolSize(10);
//设置连接池的缓存Statement的最大数
ds.setMaxStatements(180);
//获得连接
Connection conn = ds.getConnection();
在tomcat中的配置Resource
<Context path="/dbpool" docBase="dbpool" debug="5" reloadable="true" crossContext="true">
<Resource driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:bea:sqlserver://localhost:1433;DatabaseName=A6_YLGL" username="sa"
password="111111" name="jdbc/a6" type="javax.sql.DataSource" auth="Container"
maxActive="20" maxIdle="10" maxWait="5000" />
</Context>
path: 自己应用的路径(一般为相对路径),在webapps目录下;
docBase: 应用的名称和上面相同;
driverClassName: 应用所要的驱动名;
url: 连接数据库的地址;
username: 登陆数据库要使用的用户名;
password: 登陆数据库要用的密码;
name: 引用上下文(context)的JNDI名,自己随便设;
type: 引用资源的类型;
maxActive: 每次连接数据库的最大数;
maxIdle: 每次连接数据库的等待数;
maxWait: 每次阻塞的最大延迟时间(毫秒);
其中可以在web.xml加入如下代码段引用上面的资源
<resource-ref>
<description>DBConnection</description>
<res-ref-name>jdbc/a6</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
注意:
<resource-ref>--资源引用,一般声明管理资源,如数据库驱动程序、JavaMail Session、自定义类工厂等。
<resource-env-ref>--资源环境引用
在代码中使用数据源
Connection conn=null;
Context initCtx=new InitialContext();
Context ctx=(Context)initCtx.lookup("java:comp/env");
javax.sql.DataSource ds=(javax.sql.DataSource)ctx.lookup("jdbc/a6");
conn=ds.getConnection();