文档章节

Tomcat介绍

石飞飞
 石飞飞
发布于 2016/08/28 15:05
字数 2324
阅读 26
收藏 1

【1】Tomcat的安装和配置
           1. 安装Tomcat必须确保你的电脑已经安装了JDK。我们这里只讲解压版安装。把解压版Tomcat解压到一个没有中文,没有空格的路径中即可,建议路径不要太深,因为我们需要经常进入Tomcat安装目录。例如:F:\apache-tomcat-7.0.42
           2.在启动Tomcat之前,我们必须要配置环境变量:
               (1)JAVA_HOME:必须先配置JAVA_HOME,因为Tomcat启动需要使用JDK
               (2)CATALANA_HOME:如果是安装版,那么还需要配置这个变量,这个变量用来指定Tomcat的安装路径,例如:F:\apache-tomcat-7.0.42
               (3)启动,进入%CATALANA_HOME%\bin目录,点击 startup.bat;关闭,进入%CATALANA_HOME%\bin目录,点击 shutdown.bat 在启动Tomcat后,在浏览器上输入http://localhost:8080即可跳到Tomcat主页,表示安装成功。
【2】Tomcat的目录结构

           1、 bin:该目录下存放的是二进制可执行文件,如果是安装版,那么这个目录下会有两个exe文件:tomcat6.exe、 tomcat6w.exe,前者是在控制台下启动Tomcat,后者是弹出UGI窗口启动Tomcat;如果是解压版,那么会有startup.bat和shutdown.bat文件,startup.bat用来启动Tomcat,但需要先配置JAVA_HOME环境变量才能启
动,shutdawn.bat用来停止Tomcat。
          2、conf:这是一个非常非常重要的目录,这个目录下有四个最为重要的文件:

                (1) server.xml:配置整个服务器信息。例如修改端口号,添加虚拟主机等;下面会详细介绍这个文件

                (2) tomcat-users.xml:存储tomcat用户的文件,这里保存的是tomcat的用户名及密码,以及用户的角色信息。可以按着该文件中的注释信息添加tomcat用户,然后就可以在Tomcat主页中进入Tomcat Manager页面了。

                (3) web.xml: 部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。这些MIME类型是客户端与服务器之间说明文档类型的,如用户请求一个html网页,那 么服务器还会告诉客户端浏览器响应的文档是text/html类型的,这就是一个MIME类型。客户端浏览器通过这个MIME类型就知道如何处理它了。当 然是在浏览器中显示这个html文件了。但如果服务器响应的是一个exe文件,那么浏览器就不可能显示它,而是应该弹出下载窗口才对。MIME就是用来说 明文档的内容是什么类型的!

                (4) context.xml:对所有应用的统一配置,通常我们不会去配置它。

          3、lib:Tomcat的类库,里面是一大堆jar文件。如果需要添加Tomcat依赖的jar文件,可以把它放到这个目录中,当然也可以把应用依赖 的jar文件放到这个目录中,这个目录中的jar所有项目都可以共享之,但这样你的应用放到其他Tomcat下时就不能再共享这个目录下的Jar包了,所 以建议只把Tomcat需要的Jar包放到这个目录下。
          4、logs:这个目录中都是日志文件,记录了Tomcat启动和关闭的信息,如果启动Tomcat时有错误,那么异常也会记录在日志文件中。
          5、temp:存放Tomcat的临时文件,这个目录下的东西可以在停止Tomcat后删除。
          6、webapps:存 放web项目的目录,其中每个文件夹都是一个项目;如果这个目录下已经存在了目录,那么都是tomcat自带的项目,例如:docs、examples、 host-manager、manager和ROOT。其中ROOT是一个特殊的项目,当我们在浏览器的地址栏中输入的URL没有给出项目目录时,则默认对应的就是ROOT项目。例如:http://localhost:8080/examples,进入示例项目。其中examples就是项目名,即文件夹的名字。
          7、work:运行时生成的文件,最终运行的文件都在这里。通过webapps中的项目生成的!可以把这个目录下的内容删除,再次运行时会生再次生成work目录。当客户 端用户访问一个JSP文件时,Tomcat会通过JSP生成Java文件,然后再编译Java文件生成class文件,生成的java和class文件都会存放到这个目录下 。

【3】Tomcat作为Web服务器的应用
      1.创建静态应用

  • 在Tomcat的安装目录的webapps目录下创建一个hello目录
  • 在webapps\hello\下创建index.html,该html文件的内容可以随意写符合格式要求的内容

 
      2.创建动态应用

  • 在webapps下创建hello1目录
  • 在webapps\hello1\下创建WEB-INF目录
  • 在webapps\hello1\WEB-INF\下创建web.xml 以及 classes 和 lib 目录
  • 在webapps\hello1\下创建index.html

        目录结构如下所示:

        

  • java-web:应用目录。java-web就是应用的名称
  • index.jsp:应用资源。应用下可以有多个资源,例如css、js、html、jsp等,也可以把资源放到文件夹中,例如:hello\jsp\index.jsp这时访问URL为:http://localhost:8080/hello/html/index.html     
  • WEB-INF:这个目录名称必须是大写,这个目录下的东西是无法通过浏览器直接访问的,也就是说放到这里的东西是安全
  • web.xml:应用程序的部署描述符文件,可以在该文件中对应用进行配置。后面会详细讲解如何配置该部署描述文件

【四】配置外部应用
      部署的项目本来是放在Tomcat安装目录的 webapps 目录下的,现在我们不放到该目录下,我们放到其他目录下面,同时希望Tomcat也可以找到它。
      例如我们把上面写的hello应用从webapps目录中剪切到D盘下,即D:/hello。现在hello这个Web应用已经不在Tomcat中了,这时我们需要在tomcat中配置外部应用的位置,配置的方式一共有两种:

  • 找到conf/server.xml:打开server.xml文件,找到<Host>元素,在其中添加<Context>元素,代码如下:

        

           (1)path:指定当前应用的名称(我自己把它理解为虚拟根路径)。这里的path名称可以是hello,也可以是其他任意合法的应用名称。
           (2)docBase:指定应用的物理位置,也就是在磁盘上存放的路。
           (3)访问的URL是:http://localhost:8080/my/index.html

  • conf/catalana/localhost:在该目录下创建my.xml文件,在该文件中编写<Context>元素,代码如下:    

        

              (1)文件名:指定当前应用的名称。
              (2)docBase:指定应用的物理位置。
              (3)访问的URL是:http://localhost:8080/my/index.html

【五】映射虚拟主机
         我们要实现的就是在浏览器中输入 http://www.flow.jr.com 就可以访问我们的项目。完成这个目标,我们需要做三件事情:

  • 在 server.xml 中修改端口号为:80

        

  • 将本地 IP 和域名 www.flow.jr.com 绑定关系,此时只需要修改本机的 host 文件

        

  • 在 server.xml 中添加一个 <Host> 主机

        

【六】了解 server.xml

    server.xml的节点结构:

      <Server>
              <Service>
                      <Connector>
                      <Engine>
                               <Host>
                               <Context>

  • <Server>:根元素,表示整个服务器的配置信息
  • <Service>:<Server>的子元素,在<Server>中只能有一个<Service>元素,它表示服务
  • <Connector>:<Service>的子元素,在<Service>中可以有N个<Connector>元素,它表示连接
  • <Engine>:<Service>的子元素,在<Service>中只能有一<Engine>元素,该元素表示引擎,它是<Service>组件的核心
  • <Host>:<Engine> 的子元素,在<Engine>中可以有N个<Host>元素,每个<Host>元素表示一个虚拟主机。所谓虚拟主机 就像是真的主机一样,每个主机都有自己的主机名和项目目录。例如<Host name=”localhost” appBase=”webapps”>表示主机名为localhost,这个主机的项目存放在webapps目录中。访问这个项目下的主机时,需要 使用localhost主机名,项目都存放在webapps目录下
  • <Context>:<Host>元素的子 元素,在<Host>中可以有N个<Context>元素,每个<Context>元素表示一个应用。如果应用 在<Host>的appBase指定的目录下,那么可以不配置<Context>元素,如果是外部应用,那么就必须配 置<Context>。如果要为应用指定资源,也需要配置<Context>元素

 
我们可以把<Server>看作是一个大酒店:

  • <Service>:酒店的服务部门
  • <Connector>:服务员
  • <Engine>:后厨
  • <Host>:后厨中的一个区,例如川菜区是一个<Host>、粤菜区是一个<Host>
  • <Context>:后厨的一个厨师

       用户发出一个请求:http://localhost:8080/hello/index.jsp。 发现是http/1.1协议,而且还是8080端口,所以就交给了处理这一请求的“服务员(处理HTTP请求的<Connector>)”, “服务员”再把请求交给了“后厨(<Engine>)”,因为请求是要一盘水煮鱼,所以由“川菜区(<Host>)”负责,因为 “大老王师傅<Context>”做水煮鱼最地道,所以由它完成。

  • <Connector>:关心请求中的http、和8080
  • < Host>:关心localhost
  • <Context>:关心hello

 

 

© 著作权归作者所有

上一篇: Servlet概述
下一篇: .gitignore 文件
石飞飞
粉丝 2
博文 64
码字总数 39883
作品 0
朝阳
程序员
私信 提问
再聊聊servlet在tomcat下面如何玩耍

“文章没有写完,晚些更” 从 Servlet 容器说起 要介绍 Servlet 必须要先把 Servlet 容器说清楚,Servlet 与 Servlet 容器的关系有点像枪和子弹的关系,枪是为子弹而生,而子弹又让枪有了杀伤...

牧师-Panda
2016/09/17
28
0
从servlet容器说起

要介绍 Servlet 必须要先把 Servlet 容器说清楚,Servlet 与 Servlet 容器的关系有点像枪和子弹的关系,枪为弹而生,而弹又让枪有了杀伤力。虽然它们是彼此依存的,但是又相互独立发展,这一...

芥末无疆sss
2017/12/14
0
0
基于docker的tomcat服务化

tomcat作为web容器被广泛应用,但作者所在的公司restful接口特别多,每个接口都需要一个tomcat来启动,为了配置隔离,一般都会把tomcat安装文件复制多遍,分别把war包部署在对应的webapp目录...

gabrywu
2018/03/15
0
0
Maven 集成Tomcat7插件

Maven已经是Java的项目管理标配,如何在JavaEE开发使用Maven调用Web应用,是很多同学关心的问题。本文将介绍,Maven如何介绍Tomcat插件。 Maven Tomcat插件现在主要有两个版本,tomcat-mave...

squanchao
2015/10/17
470
0
利用Redis共享Tomcat中的Session

想要做Tomcat集群,其中需要解决的一个问题就是多个Tomcat中session的共享。共享的方法有很多种,比如使用Tomcat自带的session复制,使用数据库等。这里一些介绍我使用过的方法。 1.替换Tom...

囚徒困境
2016/10/18
493
0

没有更多内容

加载失败,请刷新页面

加载更多

作为一个(IT)程序员!聊天没有话题?试试这十二种技巧

首先呢?我是一名程序员,经常性和同事没话题。 因为每天都会有自己的任务要做,程序员对于其他行业来说;是相对来说比较忙的。你会经常看到程序员在发呆、调试密密麻麻代码、红色报错发呆;...

小英子wep
今天
14
0
【SpringBoot】产生背景及简介

一、SpringBoot介绍 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程,该框架使用了特定的方式来进行配置,从而使开发人员不再需要...

zw965
今天
5
0
简述并发编程分为三个核心问题:分工、同步、互斥。

总的来说,并发编程可以总结为三个核心问题:分工、同步、互斥。 所谓分工指的是如何高效地拆解任务并分配给线程,而同步指的是线程之间如何协作,互斥则是保证同一时刻只允许一个线程访问共...

dust8080
今天
6
0
OSChina 周四乱弹 —— 当你简历注水但还是找到了工作

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌 :#今日歌曲推荐# 分享成龙的单曲《男儿当自强》。 《男儿当自强》- 成龙 手机党少年们想听歌,请使劲儿戳(这里) @hxg2016 :刚在...

小小编辑
今天
3.3K
22
靠写代码赚钱的一些门路

作者 @mezod 译者 @josephchang10 如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。 今天给大家分享一个精彩的 GitHub 库,这个库整理...

高级农民工
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部