Java Web学习(十二)Tomcat核心
一、引言
其实按道理来说,学习Java web应该在前面的篇幅就写有关tomcat相关的知识点,不过近期看了一些资料,觉得以前仅仅只是知道用tomcat去发布我的项目,一些细节的东西也没有好好总结,这里从新写一篇进行tomcat知识点的总结。
二、Tomcat的结构
网上看到一张图片很好的涵盖了Tomcat的结构:

我们从图中可以直观的看出Tomcat的内部构成主要有这几个角色:
- context :主机中的应用名称
- localhost :主机域名,通过dns文件【hosts】进行解析
- virtualhost :虚拟主机域名,同样可以通过dns文件【hosts】进行解析
- connector :连接器,由指定端口号所对应的程序通过指定访问协议所创建的连接对象。
- service :对外提供的服务
- server :服务器
简单了解了Tomcat的主要构成,现在我们详细的去了解一下每个角色是干什么用的~
context
context就是我们发布在tomcat里面的应用实例,我们开发完成的项目,如果直接发布在tomcat上运行的话,一般打成一个war包放到tomcat的webapps目录下。
localhost
host文件【dns映射】
主机域名,通过dns来解析出具体的主机ip地址,我们可以看一下c:\windows\system32\drivers\etc路径下的hosts文件:

PS:localhost一般特指本地主机,127.0.0.1又称为回送地址,表示本机,无论是否连接网络,均可访问。
server.xml【Tomcat服务器配置】

- appBase :主机所对应的目录。PS:这个目录是相对于Tomcat安装目录的相对路径
- autoDeploy :是否自动部署。为true时,当我们把项目放到webapps目录下时,会自动部署到服务器,由Tomcat
- name :主机名,即我们说的域名
- unpackWARs :是否自动解压war包。为ture则会自动解压
PS:localhost一般特指本地主机,127.0.0.1又称为回送地址,表示本机,无论是否连接网络,均可访问。
虚拟目录【配置应用访问地址】
方式1:配置<Context/>标签

- path : 指定在当前主机域名下访问该应用的URI
- docBase : 指定应用目录的路径
当我们按照上图的方式配置<Context>标签以后,重启Tomcat就可以通过/designMode来访问E盘下的designMode项目了。
PS:这种方式配置需要重启Tomcat才能生效
方式2:在主机目录中配置


PS:这种方式配置不需要重启Tomcat就能生效
virtualhost
virtualhost又叫虚拟主机,通常是用一台主机虚拟出多个域名进行映射的一种方式。
使用方式:



connector
connector主要是用于接收http请求并解析http请求,然后将请求交给servlet容器的中间件。
service
service是对外提供服务的,我们可以把它看成是对外提供服务的一个平台独立,低耦合,自包含的、可编程的web的应用程序。
server
server就是服务器主体,这里我们特指Tomcat容器本身,我们开发的成品就是要部署到服务器上面才可以对外打开,让用户进行访问。
Java Web学习(十二)Tomcat核心的更多相关文章
- java web学习总结(二) -------------------TOMCAT使用帮助(一)
一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml ...
- java web 学习十二(session)
一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...
- JAVA WEB学习笔记(二):Tomcat服务器的安装及配置
一.Tomcat的下载及安装. 前往Tomcat官网下载安装包或者免安装压缩包.链接http://tomcat.apache.org/ 这里,我选择的是Tomcat8.0,而不是最新的Tomcat9. ...
- java web学习总结(二十九) -------------------JavaBean的两种开发模式
SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. 一.JSP+JavaBean开发模式 1 ...
- java web学习总结(二十二) -------------------简单模拟SpringMVC
在Spring MVC中,将一个普通的java类标注上Controller注解之后,再将类中的方法使用RequestMapping注解标注,那么这个普通的java类就够处理Web请求,示例代码如下: ...
- java web学习总结(二十) -------------------监听器属性详解
一.监听域对象中属性的变更的监听器 域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信 ...
- java web学习总结(三) -------------------TOMCAT使用帮助(二)
一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:
- java web学习总结(二十八) -------------------JSP中的JavaBean
一.什么是JavaBean JavaBean是一个遵循特定写法的Java类,它通常具有如下特点: 这个Java类必须具有一个无参的构造函数 属性必须私有化. 私有化的属性必须通过public类型的方法 ...
- java web学习总结(二十六) -------------------JSP属性范围
所谓的属性范围就是一个属性设置之后,可以经过多少个其他页面后仍然可以访问的保存范围. 一.JSP属性范围 JSP中提供了四种属性范围,四种属性范围分别指以下四种: 当前页:一个属性只能在一个页面中取得 ...
- java web学习总结(二十五) -------------------JSP中的九个内置对象
一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...
随机推荐
- python基础 Day3
python Day3 1.作业回顾 设定一个理想的数字比如88,让用户输入数字,如果比88大,则显示猜测的结果大:如果比66小,则显示猜测的结果小了,给用户三次猜测机会,如果显示猜测正确退出循环,如 ...
- kolla搭建ironic裸机服务
参考链接: https://www.lijiawang.org/posts/kolla-ironic.html 准备ageng镜像: [root@control01 ~]# pip install d ...
- 第六篇 Scrum冲刺博客
一.会议图片 二.项目进展 成员 已完成情况 今日任务 冯荣新 购物车列表,购物车工具栏 博客撰写 陈泽佳 静态结构 自定义图片组件,提交功能 徐伟浩 协助前端获取数据 协助前端获取数据 谢佳余 未完 ...
- 【小白学AI】XGBoost推导详解与牛顿法
文章来自微信公众号:[机器学习炼丹术] 目录 1 作者前言 2 树模型概述 3 XGB vs GBDT 3.1 区别1:自带正则项 3.2 区别2:有二阶导数信息 3.3 区别3:列抽样 4 XGB为 ...
- docker部署数据库
搜索数据库镜像images docker search mysql 搜索结果如下图所示: 选择合适自己的mysql版本 因为mysql新版本出来了,很多特性没有学习,所以笔者安装了mysql:5.6 ...
- filebeat 启动失败
最近在ELK架构中启动filebeat时,启动失败,检查启动节点不存在 查看/var/log/message中报错日志,有如下内容 filebeat: Exiting:error loading co ...
- 轻量化模型训练加速的思考(Pytorch实现)
0. 引子 在训练轻量化模型时,经常发生的情况就是,明明 GPU 很闲,可速度就是上不去,用了多张卡并行也没有太大改善. 如果什么优化都不做,仅仅是使用nn.DataParallel这个模块,那么实测 ...
- guzzle下载图片(laravel+vue)
先再laravel安装guzzle扩展包:composer require guzzlehttp/guzzle 之后再控制器操作: use GuzzleHttp\Client; //远程api数据的获 ...
- 设计模式(多个if的处理)
使用场景 如果在代码中出现大量if判断,再执行一些比较复杂的业务操作,类似于以下情况. @Test void test() { String str = "A"; if (str. ...
- vue中使用柱状图
子组件 <template> <div> <div id="myChart" :style="{width: '400px', height ...
