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(平均值) ...
随机推荐
- poj 3903 最长上升子序列 Stock Exchange
题目链接:http://poj.org/problem?id=3903 #include <cstdio> #include <cmath> #include <algo ...
- A - 棋盘问题
地图看起来不太大,可以试试深搜,试一下.. 还是比较简单的搜索,竟然一下就过................... #include<stdio.h> #include<) ...
- 编写一个方法,输入DOM节点,返回包含所有父节点的一个数组
编写一个方法,输入DOM节点,返回包含所有父节点的一个数组 function getParentsNodes(element) { var parents = []; var getParentsNo ...
- [ES6] Array.findIndex()
In es5, you can use indexOf to get the index of one item in an array. In es6, you can use findIndex( ...
- warning:1071 (42000) Specified key was too long;max key length is 1000 bytes
原因是mysql字段长度设置的太长了, 从而导致mysql在建立索引时,索引长度超过了mysql默认许可的长度 默认 Innodb 允许长度为 767 MyISAM 允许长度为 1000 官方说明 如 ...
- 谷歌postman插件用不了的命令行指令
谷歌postman插件用不了,想测试通过post提交传过来的参数测试,打开所在目录,shift右键,打开命令窗口,输入一下指令,即可获取到提交的值curl -X POST -d 'name=kpf&a ...
- ie6-7 overflow:hidden失效问题的解决方法
即使父元素设置了overflow:hidden.解决这个bug很简单,在父元素中使用position:relative; zoom: 1;触发haslayout 即可解决该BUG.
- (转)织梦dedecms模板。如何让type='image'和不带type='image'的文章同时出现在列表里。
“节日歌圩”栏目是有内容的,但是文章没有缩略图所以没有在频道首页显示出来,我现在想要有缩略图的文章自然显示,没有缩略图的文章也能出现标题列表(依然按照一行4个标题,可以用一张“无缩略图”的图片来代替缩 ...
- 用ASP.net判断上传文件类型的三种方法
一. 安全性比较低,把文本文件1.txt改成1.jpg照样可以上传,但其实现方法容易理解,实现也简单,所以网上很多还是采取这种方法. Boolean fileOk = false; ...
- Objective-C学习篇04—多态
多态 多态的概念 有这样一个例子.早上我和同事说口渴了.结果:A同事拿着我的水杯去给我接了一杯水.B同事顺手在饮水机上拿了一次性纸杯给我接了杯水.C同事给了我一瓶他早上刚买的饮料.同事们得到的是同样的 ...