一、简介

Tomcat是一个实现了JAVA EE标准的最小的WEB服务器,是Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且开源免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。学习JavaWeb开发一般都使用Tomcat服务器,该服务器支持全部JSP以及Servlet规范,启动界面如图:

Tomcat的体系结构

Tomcat服务器的启动是基于一个server.xml文件的,Tomcat启动的时候首先会启动一个Server,Server里面就会启动Service,Service里面就会启动多个"Connector(连接器)",每一个连接器都在等待客户机的连接,当有用户使用浏览器去访问服务器上面的web资源时,首先是连接到Connector(连接器),Connector(连接器)是不处理用户的请求的,而是将用户的请求交给一个Engine(引擎)去处理,Engine(引擎)接收到请求后就会解析用户想要访问的Host,然后将请求交给相应的Host,Host收到请求后就会解析出用户想要访问这个Host下面的哪一个Web应用,一个web应用对应一个Context。

完整的server.xml配置文件内容:

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN"><Service name="Catalina"><Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" /><Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"maxThreads="150" SSLEnabled="true" scheme="https" secure="true"clientAuth="false" sslProtocol="TLS" keystoreFile="conf/.keystore" keystorePass="123456"/><Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /><Engine name="Catalina" defaultHost="localhost"><Host name="localhost"  appBase="webapps"unpackWARs="true" autoDeploy="true"><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log." suffix=".txt"pattern="%h %l %u %t &quot;%r&quot; %s %b" /></Host> </Engine></Service>
</Server>

二、下载和安装Tomcat服务器

官方下载地址:http://tomcat.apache.org/ ,

解压后就可以使用。

三、Tomcat目录层次结构

四、启动/测试Tomcat服务器

双击 bin 目录下的 startup.bat 文件启动Tomcat服务器


打开浏览器,输入localhost:8080,能显示如下界面代表安装成功。

五、Tomcat服务器启动常见问题

1、JAVA_HOME环境变量设置问题

要想双击bin目录下的startup.bat文件启动Tomcat服务器,首先要做的就是在windows中设置JAVA_HOME环境变量,因为Tomcat服务器的启动需要用到这个JAVA_HOME环境变量,如果windows中不存在JAVA_HOME环境变量,则Tomcat服务器是无法启动的。

2、端口占用问题

因为Tomcat服务器启动时是需要默认是使用8080端口的,如果这个8080端口被别的应用程序占用了,那么Tomcat服务器就无法正常启动,看到的现象就是"Tomcat服务器启动界面会打印出异常错误信息,然后就自动关闭了",我们直接前往日志文件logs/catalina.xxxx-xx-xx.log,如图所示:

日志信息里面清楚的记录了Tomcat服务器的运行情况,因为8080端口被占用而无法正常启动,就会记录如上图所示的异常信息,通过查看异常信息,就可知道Tomcat服务器为什么不能够正常启动了!

六、Tomcat服务器端口设置

在server.xml配置文件中的Connector节点进行的端口修改。例如:将Tomcat服务器的启动端口由默认的8080改成8081端口

Tomcat服务器启动端口默认配置

<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />

将Tomcat服务器启动端口修改成8081端口

<Connector port="8081" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />

这样就把原来默认Tomcat默认的的8080端口改成了8081端口了,需要注意的是,一旦服务器中的*.xml文件改变了,则Tomcat服务器就必须重新启动,重新启动之后将重新读取新的配置信息。因为已经在server.xml文件中将Tomcat的启动端口修改成了8081,所以Tomcat服务器启动时就以8081端口启动了,如下图所示:

七、Tomcat服务器虚拟目录的映射方式

Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射。那么在Tomcat服务器中,如何进行虚拟目录的映射呢?总共有如下的3种方式:

1、方式一:在server.xml文件的host元素中配置

Tomcat的logs/server.xml的文件的host元素,如下图所示:

<Host name="localhost"  appBase="webapps"unpackWARs="true" autoDeploy="true"><!-- SingleSignOn valve, share authentication between web applicationsDocumentation at: /docs/config/valve.html --><!--<Valve className="org.apache.catalina.authenticator.SingleSignOn" />--><!-- Access log processes all example.Documentation at: /docs/config/valve.htmlNote: 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 &quot;%r&quot; %s %b" /></Host>

<Host></Host>这对标签加上<Context path="/JavaWebApp" docBase="D:\JavaWebs" />即可将在D盘下的JavaWebs这个JavaWeb应用映射到JavaWebApp这个虚拟目录上,JavaWebApp这个虚拟目录是由Tomcat服务器管理的,JavaWebApp是一个硬盘上不存在的目录,是我们自己随便写的一个目录,也就是虚拟的一个目录,所以称之为"虚拟目录",代码如下:

<Host name="localhost"  appBase="webapps"unpackWARs="true" autoDeploy="true"><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log." suffix=".txt"pattern="%h %l %u %t &quot;%r&quot; %s %b" /><Context path="/JavaWebApp" docBase="D:\JavaWebs" /></Host>

其中,Context表示上下文,代表的就是一个JavaWeb应用,Context元素有两个属性,

  • path:用来配置虚似目录,必须以"/"开头。

  • docBase:配置此虚似目录对应着硬盘上的Web应用所在目录。

使用浏览器访问"/JavaWebApp"这个虚拟目录下的1.jsp这个web资源,访问结果如下:

**注意:**在Tomcat6之后中,不再建议在server.xml文件中使用配置context元素的方式来添加虚拟目录的映射,因为每次修改server.xml文件后,Tomcat服务器就必须要重新启动后才能重新加载server.xml文件。

2、方式二:让tomcat服务器自动映射

tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚似目录。换句话说,tomcat服务器webapps目录中的web应用,外界可以直接访问。

例如:把D盘下的JavaWebs这个JavaWeb应用直接copy到tomcat服务器webapps目录中,如下图所示:

此时Tomcat服务器就会自动为JavaWebs这个JavaWeb应用映射一个同名的虚拟目录"/JavaWebs"

后台日志:

如下图所示:

3、方式三

在tomcat服务器的\conf\Catalina\localhost目录下添加一个以xml作为扩展名的文件,xml文件的名字可以任意取,比如JavaWebs.xml

在JavaWebs.xml文件中添加Context元素映射JavaWeb应用,代码如下:

<Context docBase="D:\JavaWebs" />

**注意:**在Context元素中并没有指明path属性来设置虚拟目录的名称,那么"F:\JavaWebs"映射的虚拟目录名称是什么呢,就是当前正在编辑的这个xml文件的名称JavaWebs。

**注意:**使用这种方式映射虚拟目录的最大好处是修改了配置文件后不用重启Tomcat服务器

出处:https://www.cnblogs.com/Zender/p/7596730.html

java web总结:tomcat使用教程相关推荐

  1. (java web后端方向)如何让你的简历为你争取到更多的面试机会,内容来自java web轻量级开发面试教程...

    我们在做培训时,会发现一个不合理的情况,一些程序员能力不错,在公司里也是技术牛人,但发出去的简历往往会石沉大海,没有回复.对于刚毕业的大学生或工作年限在2年之内的程序员,这个情况会更严重. 这种情况下 ...

  2. 面试时,当你有权提问时,别客气,这是个逆转的好机会(内容摘自Java Web轻量级开发面试教程)...

    前些天,我在博客园里写了篇文章,如何在面试中介绍自己的项目经验,收获了2千多个点击,这无疑鼓舞了我继续分享的热情,今天我来分享另外一个面试中的甚至可以帮助大家逆转的技巧,本文来是从 java web轻 ...

  3. 根据实践经验,讲述些学习Java web能少走的弯路,内容摘自java web轻量级开发面试教程...

    在和不少比较上进的初级程序员打交道的过程中,我们总结出了一些能帮到合格程序员尽快进阶的经验,从总体上来讲,多学.多实践不吃亏.本文来是从 java web轻量级开发面试教程从摘录的. 1  哪些知识点 ...

  4. java web轻量级开发面试教程内容精粹:哪些简历得不到面试机会

    看到一本较好的实践性比较强的书,java web轻量级开发面试教程,里面的一些内容很有实践意义. 问题点 很难获得面试机会的原因 学历不符,比如要求是本科以上,但学历是大专 学历是硬指标,所以达不到学 ...

  5. java web服务器tomcat介绍【转载】

    机器矩阵2016-08-10 22:14 java程序员亲切地称他为tom猫,看到这只猫可以说明1 服务器部署成功了 ,2 网络是联通的. 到底这只猫是什么来头呢? tomcat是Apache基金会下 ...

  6. JAVA WEB开发环境搭建教程

    一.下载安装JDK,配置好环境变量.(例如我JDK安装的目录为:C:\Program Files (x86)\Java\jdk1.6.0_10     ) 点击我的电脑-属性-系统设置(高级系统设置) ...

  7. java web数据库面试_数据库面试技巧,通过JDBC展示自己专业性,摘自java web轻量级开发面试教程...

    importjava.sql.Connection;2 importjava.sql.DriverManager;3 importjava.sql.ResultSet;4 importjava.sql ...

  8. 太恐怖了 两天搞定一个项目 Java Web MVC 网络商城教程+源代码

    两天搞定一个项目 Java Web MVC 网络商城教程+源代码 最近自学做了一个网络商城将以下是代码和教程 环境搭建–数据库设计–页面设计-后台设计 本项目使用的jdk版本是 运行项目前需要先配置好 ...

  9. java清华大学教程_清华大学出版社-图书详情-《Java Web应用开发基础教程》

    目录                                                  ...

  10. Java Web Start入门基础教程

    关于Web Start的JNLP Specification可以到sun网站http://java.sun.com/products/javawebstart/download-spec.html下载 ...

最新文章

  1. H264 NALU 使用PS封装 RTP发送
  2. 打开密码保护的office文件提示文件损坏的解决办法
  3. event.stopPropagation和event.preventDefault有什么区别?
  4. python开发的优秀界面-:Python做推荐系统,界面用什么实现
  5. 苹果cms的php.ini,苹果cms安装及配置详细教程
  6. Unity2D实现贴图凹凸感并接受实时光照效果
  7. Android自定义文件路径箭头,Android自定义ViewGroup实现带箭头的圆角矩形菜单
  8. 使用ESCAPE定义转义符
  9. HashMap是如何工作的
  10. 教育部公开曝光南大梁莹学术不端等4起典型案例
  11. Unreal Engine 4 的 光和影
  12. Mysql平滑迁移(重构后的数据平滑迁移)
  13. 用户身份链接方法——DeepLink
  14. 中心极限与大数定理律的关系_中心极限定理的最最通俗解释
  15. Android 登陆界面Edittext
  16. ES6文档 思维导图笔记
  17. AIDA64 Business Edition 5.97.4600 多语言绿色版
  18. Redis 进阶笔记
  19. IDEA 查找某个 jar 包是如何被引入的
  20. 黑龙江移动新魔百盒M411A_2+8_S905L3A_线刷固件包

热门文章

  1. MFC常用类、成员函数、数组类、Cstring类、CTime类、CPoint类
  2. 人工智能:各种知识收集----不断追加内容
  3. 购物小票 FoundPrice.java
  4. Django常用的模块
  5. OSI七层网络模型TCP&UDP
  6. TLS调试检测和反调试
  7. windows 下安装 scrapy报错:error: Unable to find vcvarsall.bat
  8. Dalvik指令集 (smali汇编)
  9. 11.Windows线程切换_线程优先级
  10. 【LXC】 在 LXC 中使用 snap 包管理工具