Web笔记(二)Tomcat 使用总结
Tomcat 介绍
Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。但是,不能将Tomcat和Apache HTTP服务器混淆,Apache HTTP服务器是一个用C语言实现的HTTPWeb服务器;这两个HTTP web server不是捆绑在一起的。Apache Tomcat包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。(摘录自Wiki)(Apache Tomcat)
Tomcat 安装
Tomcat是免费的开源软件,可在直接在官方网站下载。
http://tomcat.apache.org/
1.可以直接在左侧选择版本:
2.选择版本后可以在下方进行下载,可以选择下载安装版或者解压版,这里选择了解压版
tar.gz文件是Linux操作系统下的安装版本
exe文件是Windows系统下的安装版本
zip文件是Windows系统下的压缩版本
3.下载完成后解压缩,得到Tomcat目录,
Tomcat 的默认端口
Tomcat 修改HTTP默认端口,可以直接修改Tomcat 目录下\conf \server.xml文件。默认端口号为8080,修改为想要的端口,重启Tomcat即可。
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
若要修改成8081端口:
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8081" protocol="HTTP/1.1" redirectPort="8443"/>
Tomcat 的虚拟目录配置
什么是虚拟目录呢,简单的说,我们可以根据请求的路径不同,来发布不同的项目。如此形式:我们想要
在访问http://www.codingme.net/testA 时,进入A项目。
在访问http://www.codingme.net/testB 时,进入B项目。
这个时候我们就需要配置虚拟目录来完成这个操作。
此时的URL:http://www.codingme.net/testA 不是单纯的路径,而是协议域名端口号+WEB应用testA。
自动映射虚拟目录
在Tomcat 默认情况下,我们可以看到 %Tomca%\conf \server.xml文件最底部有配置如下:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
这里Tomcat 默认配置了虚拟主机localhost,基础应用目录webapps,也就是%Tomca%\webapps\ 目录,Tomcat 服务器会自动管理webapps目录下的所有web应用,并把它映射成虚似目录。
因此在需要配置虚拟目录时我们可以直接把项目复制到webapps 目录下进行发布
示例:
- 复制项目到webapps下

查看test/ index.html 文件内容
- 运行%Tomcat%/bin/startup.bat 启动Tomcat
- 进行访问测试http://localhost:8080/test/index.html
注意:http://localhost:8080 会默认访问 webapps/ROOT文件夹中的内容。
修改server.xml 映射虚拟目录
我们也可以通过在server.xml 文件中的host 元素之间添加配置代码来配置虚拟目录:添加代码如下;
Context path="/app" docBase="D:/app" debug="0" reloadable="true" crossContext="true"/>

配置中我们配置了访问路径为/app ,项目路径D:/app 因此我们只要把要发布的内容放入D:/app 文件夹中即可。
配置完毕后 运行%Tomcat%/bin/startup.bat 启动Tomcat,可以通过
访问到D:/app/index.html,需要多个虚拟目录可以直接配置多条配置。
注意:若想使用http://localhost:8080 访问项目则需要配置 path=""
注意:配置中的path值和docBase中的文件夹名称没有任何关系。
在conf /Catalina /localhost 增加xml文件映射虚拟目录
博主比较推荐这一种。
在%Tomcat%/conf/Catalina/localhost目录中,增加配置文件来配置虚拟目录。
配置文件名称格式为:虚拟目录路径.xml
举个栗子:
在%Tomcat%/conf/Catalina/localhost目录中增加文件 blog.xml
写入内容:
<?xml version="1.0" encoding="utf-8"?>
<Context
docBase="d:/blog"
reloadable="true">
</Context>

D盘下blog文件夹中内容:
docBase="d:/blog" 指定了Web应用存放位置为D盘下blog文件夹中。reloadable="true"表示当blog文件夹中文件有变化中,自动加载。
配置完毕启动Tomcat后就可以通过访问到blog文件夹中的内容。

注意:需要多个虚拟目录可以多建立几个配置文件,文件名不能相同。
注意:若想使用http://localhost:8080 访问项目则需要配置文件名为ROOT.xml。
注意:文件名blog.xml 和配置中d:/blog 没有关系,文件名可以写成其他,如blog111.xml,那么在访问时就要访问http://localhost:8080/blog111
Tomcat 的虚拟主机
首先我们先了解虚拟主机的用处,一个虚拟主机也就是一个网站。比如我们只有一个服务器,一个服务器上只有一个80端口,我们需要发布两个web项目,那么我们可以使用虚拟目录,把两个项目发布到两个不同的路径之下,但是如果我们有两个不同的域名需要把两个项目对应两个域名,我们就需要配置虚拟主机了。
示例:两个域名
一个是www.aaaa.com
一个是 www.bbbb.com
为了实验效果,我们配置C:\Windows\System32\drivers\etc\hosts 文件,添加两行映射。
127.0.0.1 www.aaaa.com
127.0.0.1 www.bbbb.com
此时我们本机可以使用 localhost / www.aaaa.com / www.bbbb.com 进行访问。
配置虚拟主机指定www.aaaa.com访问是的内容。
1:在server.xml中Engine元素中添加一个host子元素
<Host name="www.aaaa.com" debug="0" appBase="d:/aaaa" unpackWARs="true"
autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs"
prefix="aaaa_log." suffix=".txt" timestamp="true" />
</Host>
其中的
- name表示在访问的域名是www.aaaa.com时会使用此配置。
- appBase="d:/aaaa" 指定了项目的发布路径。
启动Tomcat后,此时在使用www.aaaa.com进行访问时候,会默认显示d:/aaaa/ROOT中的内容。
如果存在 d:/aaaa/test,则可以通过http://www.aaaa.com:8080/test 进行访问。
此时test也就是www.aaaa.com的虚拟目录。
添加www.bbbb.com 访问同上。
Tomcat 的单例多实例配置
参考之前文章
Linux配置Tomcat的单机多实例
作者: 雪漫士兵
博客: https://www.codingme.net (转载请注明出处)

Web笔记(二)Tomcat 使用总结的更多相关文章
- JAVA WEB学习笔记(二):Tomcat服务器的安装及配置
一.Tomcat的下载及安装. 前往Tomcat官网下载安装包或者免安装压缩包.链接http://tomcat.apache.org/ 这里,我选择的是Tomcat8.0,而不是最新的Tomcat9. ...
- JSP学习笔记(二):Tomcat服务器的安装及配置
一.Tomcat的下载及安装. 前往Tomcat官网下载安装包或者免安装压缩包.链接http://tomcat.apache.org/ 这里,我选择的是Tomcat8.0,而不是最新的Tomcat9. ...
- amazeui学习笔记二(进阶开发5)--Web 组件开发规范Rules
amazeui学习笔记二(进阶开发5)--Web 组件开发规范Rules 一.总结 1.见名知意:见那些class名字知意,见函数名知意,见文件名知意 例如(HISTORY.md Web 组件更新历史 ...
- amazeui学习笔记二(进阶开发2)--Web组件简介Web Component
amazeui学习笔记二(进阶开发2)--Web组件简介Web Component 一.总结 1.amaze ui:amaze ui是一个web 组件, 由模板(hbs).样式(LESS).交互(JS ...
- Mastering Web Application Development with AngularJS 读书笔记(二)
第一章笔记 (二) 一.scopes的层级和事件系统(the eventing system) 在层级中管理的scopes可以被用做事件总线.AngularJS 允许我们去传播已经命名的事件用一种有效 ...
- JavaWeb学习笔记二 Http协议和Tomcat服务器
Http协议 HTTP,超文本传输协议(HyperText Transfer Protocol),是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准.设计HTTP最初的目的是为 ...
- webpy使用笔记(二) session/sessionid的使用
webpy使用笔记(二) session的使用 webpy使用系列之session的使用,虽然工作中使用的是django,但是自己并不喜欢那种大而全的东西~什么都给你准备好了,自己好像一个机器人一样赶 ...
- AJax 学习笔记二(onreadystatechange的作用)
AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...
- JNDI学习总结(二)——Tomcat下使用C3P0配置JNDI数据源
一.C3P0下载 C3P0下载地址:http://sourceforge.net/projects/c3p0/files/?source=navbar
- dom解析器机制 web基本概念 tomcat
0 作业[cn.itcast.xml.sax.Demo2] 1)在SAX解析器中,一定要知道每方法何时执行,及SAX解析器会传入的参数含义 1 理解dom解析器机制 1)dom解析和dom4j原理 ...
随机推荐
- python for data analysis 2nd 读书笔记(一)
第一章相对简单,也么有什么需要记录的内容,主要用到的工具的简介及环境配置,粗略的过一下就行了.下面我们开始第二章的学习 CHAPTER 22.2Python Language Basics, IPyt ...
- 与我们息息相关的internet服务(3)---电子邮件服务
几年前了解了一下,现在再实施的时候,再了解,当然如果要到牛人张小龙28岁时的开发程度,可能还差一个筋斗云 在起步一个公司,从组建的技术上,可能要准备很多东西,其中一个就是我们熟悉的企业邮箱. 伊妹儿, ...
- POJ3040--Allowance(贪心)
http://poj.org/problem?id=3040 思路: 输入时,如果有大于c的,直接把数量加到结果中,不把他加到数组中 把钱按面值排序 想取最大面额的钱,保证取到的钱小于等于c 然后取最 ...
- JObject,JArray的基本操作
引用:https://www.cnblogs.com/dacongge/p/6957074.html 1.JObject:基本的json对象 /// <summary> /// Gets ...
- 只要一行代码求一串字符中某字符(串)出现次数,c#
这里只要一行代码就行. static void Main(string[] args) { string str = "qwerwqr;sfdsfds;fdfdsf;dfsdfsdf;dsf ...
- QT汇总
1.QT介绍及其在Linux下的安装 2.windows下安装QT并与visual studio 2017搭建开发环境 参考资料: QT官网资料 QT实战一二三 Qt资料大全 <Qt 实战一二三 ...
- IDEA打开maven项目dependencies红线
第一步:install报红的项目,从maven库下载需要的包,看看日志还缺哪些本地包,少了就去下,丢到库里.不缺包后,reimport一下一般就OK了,如果还是红的,重启一下就好了. 如果第一步还没好 ...
- C#轻量级通通讯组件StriveEngine —— C/S通信开源demo(2) —— 使用二进制协议 (附源码)
前段时间,有几个研究ESFramework通信框架的朋友对我说,ESFramework有点庞大,对于他们目前的项目来说有点“杀鸡用牛刀”的意思,因为他们的项目不需要文件传送.不需要P2P.不存在好友关 ...
- 技术干货:实时视频直播首屏耗时400ms内的优化实践
本文由“逆流的鱼yuiop”原创分享于“何俊林”公众号,感谢作者的无私分享. 1.引言 直播行业的竞争越来越激烈,进过2018年这波洗牌后,已经度过了蛮荒暴力期,剩下的都是在不断追求体验.最近正好在做 ...
- 盘点和反思在微信的阴影下艰难求生的移动端IM应用
本文原作者:李越,由银杏财经原创发布,本次内容改动. 1.前言 上线一周完成1.5亿元融资,上线10天总激活用户数超400万,8月29日单日新增用户超100万,这是子弹短信交出的最新成绩单(详见< ...