Tomcat基础教程(二)
上一篇说到了Tomcat的介绍,下载及安装,这一篇我会详述Tomcat服务器结构
一、Tomcat服务器结构图:

Tomcat服务器中可以配置多个Service,每个Service可以包含多个Connector和一个Engine。
每个Connector是负责与外界交流的模块,负责在指定的服务器端口上监听来自客户端的请求,并将请求交给处理引擎,待处理引擎处理后再将结果返回给客户端。Connector要支持不同的传输协议。
一个Service只有一个Engine,其出来来自各个Connector的客户端请求。Engine上可以有多个Host(Host指的是虚拟主机,即在物理服务器上配置的多个域名)。每个Host上又可以部署一个或多个Web应用,即结构图中的Context,而每个应用中又可以配置多个Servlet来处理相应的请求。
Tomcat通过分级的结构将其提供的多服务,多协议,多主机进行层层分解,最终都归结到一个一个的Servlet来执行具体的任务,这也是Tomcat被称为Servlet容器的原因。
二、Tomcat基础配置 - server.xml配置文件
Tomcat有层级结构,也体现在server.xml配置文件中,它是用于配置Tomcat服务器的最主要的配置文件,默认的配置文件有如下元素:

黑体部分位server.xml中的元素,红色部分为元素的属性。
Connector可以有两种,一种是HTTP Connector,使得Tomcat可以通过http协议通信,一种是AJP Connetor,表示使用AJP协议通信,用于Tomcat与Apache服务器通信。他们都是根据protocol属性值进行区分,默认是HTTP Connector。
Tomcat其他配置文件
web.xml: Tomcat中每个Web应用都拥有一个对Web应用进行配置的web.xml文件
tomcat-user.xml: 给文件对登陆Tomcat后台管理的用户做定义,包括角色和用户名/密码
logging.properties: Tomcat服务器日志功能属性文件,定义了每一种日志的级别,存放目录,日志文件名前缀,使用的日志处理器等属性
三、在Eclipse中安装Tomcat插件
1. 先下载Tomcat插件,可以到eclipse官网上免费下载:http://www.eclipsetotale.com/
下载得到文件tomcatPluginV321.zip,对该文件解压缩,获得文件夹com.sysdeo.eclipse.tomcat_3.2.1,该文件就是根目录
2. 在elipse中完成插件安装
将插件根目录直接复制到Eclipse根目录下的plugins目录中已完成插件安装
3. 配置Tomcat插件
- 设置Tomcat version
- 设置Tomcat home,可以参考教程一
配置好之后Tomcat插件就可以使用了
Tomcat基础教程(二)的更多相关文章
- Tomcat基础教程(四)
一.将Web应用部署到Tomcat中 为什么要部署?将Web应用部署到Tomcat中,那么Tomcat就能找到相应的Web应用,当Tomcat启动时就会加载和初始化Web应用,而在Tomcat启动后, ...
- Tomcat基础教程(三)
Tomcat中的Web应用 Web应用就是具有特定目录结构的目录和文件. 基于JAVA技术开发的Web应用中通常会包含以下的web对象: 静态文件对象:HTML页面,图片,普通文件 Servlet: ...
- Tomcat基础教程(一)
Tomcat, 是Servlet和JSP容器,其是实现了JSP规范的servlet容器.它在servlet生命周期内包容,装载,运行,和停止servlet容器. Servlet容器的三种工作模式: 1 ...
- MySQL8.0数据库基础教程(二)-理解"关系"
1 SQL 的哲学 形如 Linux 哲学一切都是文件,在 SQL 领域也有这样一条至理名言 一切都是关系 2 关系数据库 所谓关系数据库(Relational database)是创建在关系模型基础 ...
- Java基础教程——二维数组
二维数组 Java里的二维数组其实是数组的数组,即每个数组元素都是一个数组. 每个数组的长度不要求一致,但最好一致. // 同样有两种风格的定义方法 int[][] _arr21_推荐 = { { 1 ...
- numpy基础教程--二维数组的转置
使用numpy库可以快速将一个二维数组进行转置,方法有三种 1.使用numpy包里面的transpose()可以快速将一个二维数组转置 2.使用.T属性快速转置 3.使用swapaxes(1, 0)方 ...
- AngularJS 基础教程二:
5.过滤器 过滤器的主要功能是格式化数据 可以使用Angular提供的过滤器,也可以自定义过滤器 Angular过滤器: currency(货币).date(日期).filter(子串匹配).json ...
- SpringCloud2.0 Eureka Server 服务中心 基础教程(二)
1.创建[服务中心],即 Eureka Server 1.1.新建 Spring Boot 工程,工程名称: springcloud-eureka-server 1.2.工程 pom.xml 文件添加 ...
- mysql基础教程(二)-----分组函数、多表查询、常见函数
分组函数 什么是分组函数 分组函数作用于一组数据,并对一组数据返回一个值. 组函数类型 • AVG() • COUNT() • MAX() • MIN() • SUM() 组函数语法 AVG(平均值) ...
随机推荐
- Linus:为何对象引用计数必须是原子的
Linus大神又在rant了!这次的吐槽对象是时下很火热的并行技术(parellism),并直截了当地表示并行计算是浪费所有人时间(“The whole “let’s parallelize” thi ...
- 区别assign VS weak,__block VS __weak
在objective-c中,类中的全局变量经常使用如下的方式申明. @property(nonatomic(1),strong(2))UIImageView *imageView; 其中的1,2处是对 ...
- Unity3d个人信息开发流程
1.首先先对需要交互的属性进行G/S,比如声明金币的属性 private int _coin; public String Coin{ get{ return _coin; } set{ return ...
- SQL中的case when then else end用法
--简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' ...
- Monkey log分析说明
运行命令: adb shell monkey -p com.crazyhornets.MyHokageAndroidZSY -v -v -v 20 -- throttle 1000 Log: :Mon ...
- Python算法之---冒泡,选择,插入排序算法
''' Created on 2013-8-23 @author: codegeek ''' def bubble_sort(seq): for i in range(len(se ...
- c# mongo 返回指定的列
var query= db.GetCollection<Merchant>("merchant").Find(Query<Merchant>.EQ(m =& ...
- 整理Git的命令使用
Git是一个开源的分布式版本号控制系统,用以有效.快速的处理从非常小到非常大的项目版本号管理.Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源代码的版本号 ...
- stl_alloc.h
/* * Copyright (c) 1996-1997 * Silicon Graphics Computer Systems, Inc. * * Permission to use, copy, ...
- TCP异常终止(reset报文)
在之前做智能家居系统时,师弟做的服务端与WiFI盒子(客户端)进行通信时,总是出现异常情况,然后服务端不停地向客户端发送RESET报文,之前一直都不知道是什么情况,因此一直不知道是什么问题导致的,今天 ...