Tomcat详解
解压缩下载的Tomcat压缩包,呈现的目录结构如下。
bin:目录存放一些启动和关闭Tomcat的可执行程序和相关内容。
conf:存放关于Tomcat服务器的全局配置。
lib:目录存放Tomcat运行或者站点运行所需的jar包,所有在此Tomcat上的站点共享这些jar包,如果需要扩展Tomcat功能,可以将第三方类库复制到该路径下。
logs:这是一个空路径,该路径用于保存Tomcat每次运行后产生的日志。
temp:保存Web应用运行过程中生成的临时文件。
wabapps:目录是默认的站点根目录,可以更改,用于自动部署Web应用,将Web应用复制到该路径下,Tomcat会将应用自动部署到容器中。
work:目录用于在服务器运行时过度资源,简单来说,就是存储jsp、servlet翻译、编译后的结果(class文件),该文件夹可以删除,但每次启动Tomcat服务器时,系统将再次建立该路径。
LICENSE等相关文档不怎么需要使用,故就不一一介绍。
修改默认端口
用文本编辑器打开conf目录下的server.xml,会发现下面这么一段,其中的8080就是默认端口,需要修改的话修改之后保存(建议使用1024以上的端口,避免与公用端口冲突),我设置的是8888,重启Tomcat即可!
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
输入http://localhost:8888/,如下所以表现修改端口成功!

如上图所示,显示三个控制台:一个市Server Status控制台,另一个是Manager App控制台,还有一个市Host Manager控制台。Status控制台用于监控服务器的状态,而Manager控制台可以部署、监控Web应用,因此我们通常只使用Manager控制台即可。点击Manager App,显示登录界面,这个对应用户名和密码需要自己事先设置好,是通过Tomcat的JAAS(JAAS,全称Java Authentication Service,Java验证和授权API,它用于控制对Java Web应用的授权访问)控制的,设置方法如下:
进入conf文件夹,用文本编辑器打开tomcat-users.xml,在<tomcat-user></tomcat-user>之间添加如下代码:
<role rolename="manager-gui"/>
<user username="tufujie" password="123456" roles="manager-gui"/>
其中username对应用户名,password对应密码,可以自行修改。
修改后重启Tomcat登录Manager App,显示如下:

显示Web应用根路径下的所有页面
在Web应用的开发阶段,通常希望Tomcat能列出Web应用根路径下的所有页面,这样能更方便地选择需要调试的JSP页面。但是出于安全考虑,Tomcat并不会列出Web应用根路径下的所有页面,所有打开Tomcat的conf目录下的web.xml文件,搜索listings,将参数对应的值从false改为true,这样就能让Tomcat列出Web应用根路径下的所有页面。
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
部署Web应用
-》利用Tomcat自动部署->最常见、最简单的方式:将Web应用复制到Tomcat的webapps下,系统将会将该应用部署到Tomcat中。
-》利用控制台部署,实质依然是利用Tomcat的自动部署。

-》添加自定义的Web部署文件
部署相对复杂,在conf目录下新建Catalina文件夹,再在Catalina文件夹中新建localhost文件夹,在localhost文件夹中添加名字任意的XML文件,该文件就是部署Web应用的配置文件,该文件的主文件名将作为Web应用的虚拟路径。例如,我们在conf/Catalina/localhost下添加一个test.xml文件,该文件的内容如下:
<Context docBase-"G:\Eclipse\jsptest" debug="0" privileged="true">
</Context>
上面的配置文件中粗体字指定了Web应用的绝对路径,重启Tomcat,Tomcat将会把G:\Eclipse\路径下的servlettest文件夹部署成Web应用,我的该应用的地址是:http://localhost:8888/jsptest/。
-》修改server.xml,修改conf文件夹下的server.xml,修改该文件可能会破坏Tomcat的系统文件,不建议使用
配置Tomcat数据源
Tomcat提供两种配置数据源的方式,这两种方式所配置的数据源访问范围不同:一种数据源可以让所有的Web应用都访问,被称为全局数据源,使用全局数据源需要修改Tomcat原有的server.xml文件,所以可能导致破坏Tomcat系统,因此尽量避免使用全局数据源。另一种只能在单个的Web应用中访问,被称为局部数据源,局部数据源无需修改系统的配置文件,只需修改用户自己的Web部署文件,不会造成系统的的破坏,而且数据源被封装在一个Web应用之中,防止被其它的Web应用访问,提供了更好的封装性。建议采用这种。无论哪种方式,都需要提供特定数据库的JDBC驱动,将JDBC驱动程序也就是对应数据库的架包复制到Tomcat的lib路径下。例如:为上面的名为jsptest的应用添加局部数据源,修改Tomcat下conf/Catalina/localhost下的test.xml文件即可。为Context元素添加一个Resource子元素,增加的内容如下:
<!--其中name指定数据源在容器中的JNDI名,从而让其它程序可以通过改名字访问数据源对象,driverClassName指定链接数据库的驱动,url指定数据库服务的URL,username指定链接数据库的用户名,password指定链接数据库的密码,maxActive指定数据源最大活动连接数,maxIdle指定数据池中最大的空闲连接数,maxWait指定数据池中最大等待获取链接的客户端-->
<Resource name="jdbc/dstest" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/javaee" username="root" password="123456" maxActive="5" maxIdle="2" maxWait="10000"/>
其中javaee数据库中的代码如下:
drop database javaee;
create database javaee;
use javaee; create table news_inf
(
news_id int primary key auto_increment,
news_title varchar(255)
); insert into news_inf
values
(null , 'Java核心技术卷一'),
(null , 'Java核心技术卷二');
测试的JSP代码片段如下:

Tomcat详解的更多相关文章
- Tomcat详解及SNS系统的部署实现
Tomcat详解及SNS系统的部署实现 http://jungege.blog.51cto.com/4102814/1409290
- Tomcat详解系列(1) - 如何设计一个简单的web容器
Tomcat - 如何设计一个简单的web容器 在学习Tomcat前,很多人先入为主的对它的认知是巨复杂的:所以第一步,在学习它之前,要打破这种观念,我们通过学习如何设计一个最基本的web容器来看它需 ...
- Tomcat详解系列(2) - 理解Tomcat架构设计
Tomcat - 理解Tomcat架构设计 前文我们已经介绍了一个简单的Servlet容器是如何设计出来,我们就可以开始正式学习Tomcat了,在学习开始,我们有必要站在高点去看看Tomcat的架构设 ...
- Tomcat详解系列(3) - 源码分析准备和分析入口
Tomcat - 源码分析准备和分析入口 上文我们介绍了Tomcat的架构设计,接下来我们便可以下载源码以及寻找源码入口了.@pdai 源代码下载和编译 首先是去官网下载Tomcat的源代码和二进制安 ...
- day08:软件系统的体系结构&Tomcat详解&Web应用&http协议
day08 软件系统体系结构 常见软件系统体系结构B/S.C/S 1.1 C/S C/S结构即客户端/服务器(Client/Server),例如QQ: 需要编写服务器端程序,以及客户端 ...
- Linux 安装 Tomcat 详解
说明:安装的 tomcat 为解压版(即免安装版):apache-tomcat-8.5.15.tar.gz (1)使用 root 用户登录虚拟机,在根目录下的 opt 文件夹新建一个 software ...
- tomcat 详解
首先搞清楚几个概念:Servlet容器与web容器.Servlet容器的主要任务是管理servlet的生命周期,而web容器更准确的说应该叫web服务器,它是来管理和部署web应用的.还有一种服务器叫 ...
- Servlet学习之web服务器Tomcat 详解
Web服务器是什么 Web服务器是指驻留于因特网上某种类型计算机的程序.当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件发送到该浏览器上,附带的信息会告诉浏览器如何查看该文 ...
- tomcat 详解五 tomcat页面设置访问权限
转自:http://blog.knowsky.com/191233.htm 在web应用中,对页面的访问控制通常通过程序来控制,流程为:登录 -> 设置session -> 访问受限页面时 ...
随机推荐
- sql server 查看创建视图的sql语句
--sp_helptext v_viewnamesp_helptext port_dept--效果
- 非关系型数据库SequoiaDB虚拟机下应用初探
SequoiaDB是广州巨杉软件有限公司开发的一款新型分布式非关系型数据库.可应用于linux操作系统下.在虚拟机下试用了一下(操作系统Ubuntu),感觉不错,操控简单易上手,在此分享一下心得. 下 ...
- 6个好用的Web开发工具
在过去的几年间,涌现出了很多Web开发工具,它们大多还是比较吸引人的,方便了我们的工作.我们可以学习一下这些新东西,短时间就可以拓宽思路(PHP100推荐:学习10分钟,改变你的程序员生涯).这些应用 ...
- numpy简单入门
声明:本文大量参考https://www.dataquest.io/mission/6/getting-started-with-numpy(建议阅读原文) 读取文件 有一个名为world_alc ...
- C++中delete和delete[]的区别
C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]. 关于 new[] 和 delete[],其中又 ...
- sqlplus中"-S"和"-L"用法
Usage: SQLPLUS [option] [logon] [start] <option> ::= -H | -V | [ [-L] [-M ] [-R ] [-S] ] &qu ...
- 基于C#利用金山取词组件实现屏幕取词功能
这个程序在网上有很多例子,近期要做的项目中有和这个有某些一点点相似的地方,就练练,发现在本机上(Win 7 64位)不能实现其功能,可能原因是API组件太老了吧,毕竟金山大佬公布他的组件是2005年, ...
- 新的MOVE结构,和在项目中实际的感受
关于MVC/MVP的瑕疵 MVC 和 MVP是最简单,最脍炙人口的框架结构. 有一段时间, 凡事有一定规模的代码,我都会架在上面,甚至后台程序也不例外(预留出可以注册的用户交互接口,作为后台控制器). ...
- Excel与SqlServer的导入导出问题总结
1.Excel导入到SqlServer中,如果Excel里面的某一列,即有文本,又有数字,导入SqlServer中这一列的类型将会是float,Excel里面对应的文本值将导不进来,为null. 解决 ...
- uc/os任务创建
问题描述: uc/os中任务创建 问题解决: 创建一个任务,任务从无到有.任务创建函数分两种, 一种是基本的创建函数OSTaskCreate, 另一种是扩展的任务创建函数OSTaskCrea ...