Tomcat 使用说明
Tomcat下有7个目录,分别是bin,conf,lib,logs,temp,webapps,work 目录
Tomcat根目录在tomcat中叫<CATALINA_HOME>
1.<CATALINA_HOME>/bin:
存放各种平台下启动和关闭Tomcat的脚本文件。
2.<CATALINA_HOME>/lib:
在lib目录下的lib目录,存放Tomcat服务器和所有web应用都能访问的JAR。
3.<CATALINA_HOME>/work:
Tomcat把各种由jsp生成的servlet文件放在这个目录下。
4.<CATALINA_HOME>/temp:
临时活页夹,Tomcat运行时候存放临时文件用的。
5.<CATALINA_HOME>/logs:
存放Tomcat的日志文件。
6.<CATALINA_HOME>/conf:
Tomcat的各种配置文件,最重要的是server.xml。
7.<CATALINA_HOME>/webapps:
Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录。
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
DBCP是Apache下的开源连接池实现,如果需要使用该连接池,应在系统中增加两个jar文件
> commons-dpcp.jar :连接池的实现
> commons-pool.jar :连接池的实现依赖库
下载地址:登录 http://commons.apache.org/站点即可下载到commons-pool.zip和commons-dbcp.zip
Tomcat的连接池正事采用该连接池来实现的。数据库连接池既可以与应用服务器整合使用,也可以由应用程序独立使用。
下面为DBCP获得数据库连接的方式
//创建数据源对象
BasicDataSource ds = new BasicDataSource();
//设置连接池所需的驱动
ds.setDriverClassName("com.mysql.jdbc.Driver");
//设置连接池数据库德url
ds.setUrl("jdbc:mysql://localhost:3306/testDB");
//用户名
ds.setUsername("root");
//密码
ds.setPassword("pass");
//初始连接数
ds.setInitialiSize(5);
//最多可以有多少个连接数
ds.setMaxActive(20);
//最少有多少个空闲的链接
ds.setMinIdle(2);
//通过数据源获取连接
Connection conn = ds.getConnection();
当访问数据库结束后,程序还可以像以前一样关闭数据库连接,但并不是把物理数据库关闭只是 把数据连接释放,归还给连接池,让其他客户可以使用该链接
//关闭数据库德连接 conn.close();
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();
Tomcat 使用说明的更多相关文章
- tomcat使用说明
tomcat使用说明 1.tomcat的目录结构及说明: 2.发布WEB应用 1).将应用目录达成war包.(将html.jsp.images.WEB-INF目录和当前目录下的所有后缀名为jsp. ...
- 完全自主创建Wrapper Tomcat容器
Wrapper Tomcat 使用说明1. Wrapper Tomcat 简介1) Wrapper Tomcat 是使用Apache Tomcat 整合 Java Service Wrapper 的一 ...
- Linux中使用Crontab定时监测维护Tomcat应用程序的方法
Linux中使用Crontab定时监测维护Tomcat应用程序的方法 功能需求: 定时监测发布的某项应用程序是否可用,如果不可用,立即执行处理措施,实现自动化运维工作. 监测的应用接口: 新闻接口.天 ...
- tomcat server.xml中文版
原文:http://www.blogjava.net/baoyaer/articles/107278.html Tomcat Server的结构图 该文件描述了如何启动Tomcat Server &l ...
- Tomcat 学习心得
Tomcat Server的结构图 Tomcat服务器的启动是基于一个server.xml文件的,Tomcat启动的时候首先会启动一个Server,Server里面就会启动Service,Servic ...
- IDEA工具使用说明
IDEA使用说明 1.安装 2.开始界面 1)create New Project (新建项目) 2)Import Project (导入项目) 3)Open (打开已有的项目) 4)Check o ...
- tomcat中server.xml配置详解
Tomcat Server的结构图如下: 该文件描述了如何启动Tomcat Server <Server> <Listener /> <GlobaNami ...
- 在Mac上关于tomcat服务器的安装、配置、启动、部署web详细流程
之前在Mac上通过安装mamp来搭建PHP环境服务器,但是对于java来说,目前还是没有找到类似mamp这样强大的软件来构建及管理java环境服务器,所以目前也是通过命令行来进行tomcat服务器的安 ...
- 【转】Tomcat中server.xml配置图
http://www.cnblogs.com/ywl925/archive/2013/02/28/2936926.html Tomcat Server的结构图 该文件描述了如何启动Tomcat Ser ...
随机推荐
- Java语法基础(二)----运算符
一.运算符: 运算符包括下面几种: 算术运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 三目运算符 最不常用的是位运算符,但也是最接近计算机底层的. 1.算术运算符 (1)+的几种用法:加法.正 ...
- java8-2 多态的概述
1.多态:同一个对象(事物),在不同时刻体现出来的不同状态. 举例: 猫是猫,猫是动物. 水(液体,固体,气态). 多态的前提: A:要有继承关系. B:要有方法重写. 其实没有也是可以的,但是如果没 ...
- 转: EclipseIDE开发 for C++
Eclipse 开发C++ 程序 http://tangmingjie2009.iteye.com/blog/2088363 Eclipse 开发C++ 程序 (二) 静态库 http://tangm ...
- 纯CSS3制作皮卡丘动画壁纸
前言 明天就放假了,趁着今晚的空挡时间来写这篇博客——这是我昨晚实现的一个简单的CSS3动画效果.话说还得缘起我逛了一下站酷网,然后不小心看到了一张皮卡丘的手机壁纸,觉得很可爱,然后觉得这种效果是可以 ...
- iOS单例模式(Singleton)写法简析
单例模式的意思就是只有一个实例.单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类. 1.单例模式的要点: 显然单例模式的要点有三个:一是某个类只能有一个实例: ...
- 021医疗项目-模块二:药品目录的导入导出-介绍poi类
我们使用的是.10版本 Apache POI - the Java API for Microsoft Documents,Apache POI 是用Java编写的免费开源的跨平台的 Java API ...
- 【Mysql】日期时间格式化
1.日期转成指定格式:DATE_FORMAT(date, format) 2.int型时间转成指定格式:FROM_UNIXTIME(unix_timestamp,format) 根据format字符串 ...
- [转]VMware虚拟机上网络连接(network type)的三种模式--bridged、host-only、NAT
转自:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/03/15/1985084.html VMWare提供了三种工作模式,它们是brid ...
- 使用dynamic获取类型可变的json对象
标题可能有点含糊不清 我这个例子的来源是,对方会返回给我json,不过成功的json与失败的json是不同的对象 我想用一个方法获取到这个对象的所有属性并打印到log中 因为是动态变化的,所以第一个想 ...
- zabbix架构
监控系统: 数据的采集---存储---展示和分析---报警 snmp cacti:rrd agent nagios:不保存数据,mysql icmp/ssh ...