一、引言

  其实按道理来说,学习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核心的更多相关文章

  1. java web学习总结(二) -------------------TOMCAT使用帮助(一)

    一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml ...

  2. java web 学习十二(session)

    一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...

  3. JAVA WEB学习笔记(二):Tomcat服务器的安装及配置

    一.Tomcat的下载及安装. 前往Tomcat官网下载安装包或者免安装压缩包.链接http://tomcat.apache.org/ 这里,我选择的是Tomcat8.0,而不是最新的Tomcat9. ...

  4. java web学习总结(二十九) -------------------JavaBean的两种开发模式

    SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. 一.JSP+JavaBean开发模式 1 ...

  5. java web学习总结(二十二) -------------------简单模拟SpringMVC

    在Spring MVC中,将一个普通的java类标注上Controller注解之后,再将类中的方法使用RequestMapping注解标注,那么这个普通的java类就够处理Web请求,示例代码如下: ...

  6. java web学习总结(二十) -------------------监听器属性详解

    一.监听域对象中属性的变更的监听器 域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信 ...

  7. java web学习总结(三) -------------------TOMCAT使用帮助(二)

    一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:

  8. java web学习总结(二十八) -------------------JSP中的JavaBean

    一.什么是JavaBean JavaBean是一个遵循特定写法的Java类,它通常具有如下特点: 这个Java类必须具有一个无参的构造函数 属性必须私有化. 私有化的属性必须通过public类型的方法 ...

  9. java web学习总结(二十六) -------------------JSP属性范围

    所谓的属性范围就是一个属性设置之后,可以经过多少个其他页面后仍然可以访问的保存范围. 一.JSP属性范围 JSP中提供了四种属性范围,四种属性范围分别指以下四种: 当前页:一个属性只能在一个页面中取得 ...

  10. java web学习总结(二十五) -------------------JSP中的九个内置对象

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

随机推荐

  1. 第7章 Spark SQL 的运行原理(了解)

    第7章 Spark SQL 的运行原理(了解) 7.1 Spark SQL运行架构 Spark SQL对SQL语句的处理和关系型数据库类似,即词法/语法解析.绑定.优化.执行.Spark SQL会先将 ...

  2. ASP.Net中的async+await异步编程

    在.NET Framework4.5框架.C#5.0语法中,通过async和await两个关键字,引入了一种新的基于任务的异步编程模型(TAP).在这种方式下,可以通过类似同步方式编写异步代码,极大简 ...

  3. python的各种包安装地址

    http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy-stack 这个网页里有python的所有包,whl的后缀是python压缩包的意思.在windows ...

  4. Java数据结构——循环队列

    普通顺序队列存在的问题在普通顺序队列中,入队的操作就是先将尾指针rear右移一个单位,然后将元素值赋值给rear单位.出队时,则是头指针front后移一个单位.像这样进行了一定数量的入队和出队操作后, ...

  5. 开源搜索引擎排名第一,Elasticsearch是如何做到的?

    一.引言 随着移动互联网.物联网.云计算等信息技术蓬勃发展,数据量呈爆炸式增长.如今我们可以轻易得从海量数据里找到想要的信息,离不开搜索引擎技术的帮助. ​ 作为开源搜索引擎领域排名第一的 Elast ...

  6. Pycharm2019.3永久激活

    1. 下载破解补丁,https://pan.baidu.com/s/1mcQM8CLUnweY02ahKEr4PQ ,下载最新上传的压缩包 2. 将压缩包解压,里面有激活文件ACTIVATION_CO ...

  7. soso官方:基于相关排序的判断

    http://www.wocaoseo.com/thread-186-1-1.html 议程 概述 检索词 用户的信息需求 网页的自有信息 网页的附属信息 相关性的计算框架 概述 相关性的表象 检索词 ...

  8. 力扣Leetcode 461. 汉明距离

    给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换. 完成所有替换操作后,请你返回这个数组. 示例: 输入:arr = [17,18,5,4,6,1] 输 ...

  9. 白嫖码云Pages,两分钟的事,就能搭个百度能搜到的个人博客平台

    为了攒点钱让女儿做个富二代(笑),我就没掏钱买服务器,白嫖 GitHub Pages 搭了一个博客平台.不过遗憾的是,GitHub Pages 只能被谷歌收录,无法被百度收录,这就白白损失了一大波流量 ...

  10. 《神经网络的梯度推导与代码验证》之CNN前向和反向传播过程的代码验证

    在<神经网络的梯度推导与代码验证>之CNN的前向传播和反向梯度推导 中,我们学习了CNN的前向传播和反向梯度求导,但知识仍停留在纸面.本篇章将基于深度学习框架tensorflow验证我们所 ...