2018年06月27日 23:42:34 尘埃丶落定 阅读数:2351
 
 版权声明:本文为博主原创文章,转载请附上作者与出处。 https://blog.csdn.net/longyin0528/article/details/80836543

1. 初识Tomcat

此处以 Tomcat 7.0.88版本为例。

1.1 启动

进入bin目录,在点击startup.bat启动时,如果窗口一闪而过,启动失败,一般是因为环境变量没有设置好。

  1. 设置:
  2. JAVA_HOME JDK安装路径。
  3. Tomcat就可以根据JAVA_HOME找到JDK,然后启动了。(Tomcat依赖于java
  • 1
  • 2
  • 3
  • 4

1.2 关闭

同样的,bin目录中可以点击shutdown.bat将其关闭,如果关闭失败,一般是因为环境变量没有设置好。

  1. 设置:
  2. CATALINA_HOME Tomcat安装路径。
  3. 这个环境变量能够让Tomcat在该变量所配置的目录来启动。
  4. 注意!如果本机安装了多个Tomcat,不论点击谁的startup.bat,启动的都是CATALINA_HOME变量所指向的Tomcat。因为该原因,一般也不推荐配置这个环境变量。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

1.3 配置端口

  1. 进入conf目录,编辑server.xml配置文件。
  • 1

找到下面这段配置:

  1. <Connector port="8080" protocol="HTTP/1.1"
  2. connectionTimeout="20000"
  3. redirectPort="8443" />
  • 1
  • 2
  • 3

可以将port的值修改为80,这样下次启动就访问浏览器localhost即可,因为浏览器的默认端口就是80

1.4 关于端口占用问题

  1. 使用命令:
  2. netstat -ano
  3. 可以找到占用端口的进程pid,再进入任务管理器,将对应pid的进程关闭。
  4. 如果没有找到pid,在属性显示栏右键勾选pid,即可看到。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2. Tomcat目录结构

  1. bin —— 存放启动和关闭Tomcat的脚本文件。
  2. conf —— 存放Tomcat服务器的各种配置文件。
  3. lib —— 存放Tomcat服务器的支撑jar包。
  4. logs —— 存放Tomcat的日志文件。
  5. temp —— 存放运行时产生的临时文件。
  6. webapps —— web应用所在目录,供外界访问的web资源的存放目录。
  7. work —— Tomcat的工作目录。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3. 虚拟主机配置

3.1 什么是虚拟主机

虚拟主机:

由于在Tomcat中可以运行多个站点,用户用浏览器访问Tomcat服务器中的每个站点的时候,就像在访问各自独立的服务器一样。

所以我们可以说,各个站点是分别运行在Tomcat这个真实服务器上的一台虚拟主机上。

简而言之:

一个Tomcat中可以配置多台虚拟主机,一个虚拟主机上可以运行一个网站。

一个网站就可以认为是一台虚拟主机。

3.2 什么是web应用

一个虚拟主机上的很多web资源,按照功能类别组织成一个个的web应用,再交给虚拟主机管理,并提供给用户访问。

3.3 如何配置web应用

当我们完成了一个web应用后,所有的该应用资源全部放在一个文件夹中,比如news,如何让虚拟主机去识别这个文件夹,并管理呢?

我们进入到conf目录的server.xml中,可以看到有这么一段配置:

  1. <Host name="localhost" appBase="webapps"
  2. unpackWARs="true" autoDeploy="true">
  • 1
  • 2

这就是Tomcat初始自带的一个虚拟主机localhost,并且外部访问所有应用资源所在的根目录是webapps

Host元素中的Context元素,代表web应用。

关于context元素的属性:

  1. - docBase:
  2. 指定web应用程序的文档基目录或者WAR文件的路径名。可以是绝对路径也可以是相对于appBase的路径名。
  3. - path:
  4. 指定web应用程序的上下文路径。
  5. - unpackWAR:
  6. 如果为trueTomcat在运行web程序前将展开所有压缩的web应用程序,默认值是true
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

配置web应用给虚拟主机:

方法一:

在Server.xml的<Host>标签中,添加<Context/>标签,就可以为该虚拟主机配置一个web应用了。

  1. <Context path="/news" docBase="E:\news" />
  • 1

虚拟路径映射:

  1. path是虚拟路径,docBase是真实路径。
  2. URL中输入localhost/news,实际上是去系统的E:\news下寻找资源。
  • 1
  • 2
  • 3

缺省web应用的配置:

  1. 即默认的web应用,当不写web应用路径时,默认访问的就是这个应用。
  2. <Context path="" docBase="E:\news" />
  • 1
  • 2
  • 3

注意,修改完这些配置后,服务器都需要重启,这种方式不是很好。

方法二:

在 Tomcat/conf/Catalina/[Host] 目录下写一个xml文件,其中,xml文件的名字就是虚拟路径,在这个xml中可以添加标签,再在其中配置真实路径。

如:conf/Catalina/localhost/news.xml的配置:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Context docBase="E:\news" />
  • 1
  • 2

然后就可以在浏览器中通过localhost/news/...来访问news应用里的资源了。

这种修改方式不需要重启服务器,稍微等待即可看到效果。

注意,如果虚拟路径中有”/”,由于文件名不允许包含”/”,需要用”#”代替。

如果需要设置为缺省应用,该如何操作?

只需要将 conf/Catalina/localhost/news.xml 中的news.xml名称修改为ROOT.xml,即可通过localhost/...直接访问应用资源了。

方法三:

这是最为简单的一种方式。

直接将web应用放置到虚拟主机管理的目录下,虚拟主机就可以找到这个web应用,从而对其进行管理。

news为例:

直接将news文件夹放到 Tomcat/webapps 下,即可通过localhost/news/...访问该应用资源。

如何设置缺省应用?

只要将web应用文件夹的名称改为ROOT,这个web应用就是缺省应用。

3.4 web应用目录结构

如果web应用的目录结构不合法,可能会出现各种问题。

  1. news
  2. |--
  3. |-- WEB-INF
  4. |-- classes
  5. |-- lib
  6. |-- web.xml
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

①:静态资源和JSP文件都可以直接放置在web应用的目录下,浏览器可以直接访问到。

②:这个文件夹可以没有,但最好有,如果有则一定要保证其目录结构完整。放置在WEB-INF目录下的所有资源浏览器没有办法直接进行访问。

③:动态web资源运行时的java类class文件要放在这个目录下。

④:动态web资源运行时所依赖的jar包要放在这个目录下。

⑤:整个web应用的配置文件,配置主页/Servlet的映射/过滤监听器的配置都需要依赖这个文件进行。

当直接访问localhost时,默认是获取缺省web应用目录下的index.html文件。

可以在WEB-INFweb.xml中设置主页的指向:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <web-app xmlns="http://java.sun.com/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  5. http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  6. version="3.0"
  7. metadata-complete="true">
  8. <welcome-file-list>
  9. <welcome-file>
  10. hello.html
  11. </welcome-file>
  12. </welcome-file-list>
  13. </web-app>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

这样当访问localhost时,会自动获取hello.html内容。

3.5 配置虚拟主机

  1. conf/server.xml中<Engine>标签下添加一个<Host>标签,就可以新增一台虚拟主机了。
  2. name —— 指定虚拟主机的名称,浏览器通过这个名称访问虚拟主机。
  3. appBase —— 虚拟主机管理的目录,放置在这个目录下的web应用,虚拟主机可以自动加载。
  • 1
  • 2
  • 3
  • 4
  • 5

由于浏览器访问地址时,需要将地址翻译成对应的ip才能找到服务器,这其中翻译的过程是由dns服务器来实现的,我们没办法修改dns服务器,此时可以修改hosts文件来模拟DNS功能。

缺省虚拟主机

如果来访者通过ip地址来访问,这个时候服务器无法辨别当前要访问的是哪台虚拟主机中的资源,会默认访问缺省虚拟主机。

缺省虚拟主机可以通过在server.xmlengine标签上的defaultHost属性进行配置。

  1. <Engine name="Catalina" defaultHost="localhost">
  • 1

4. 一些其他的配置说明

4.1 war包

  1. 通常我们可以把一个web应用的文件夹经过命令:
  2. jar -cvf my.war news
  3. news应用的资源文件压缩打包成 my.war,然后发送到webapps下,war文件会自动解压,可以直接被访问。
  4. 其实war就是zip,将zip文件后缀名改一下也能达到效果。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

4.2 通用的配置

conf文件夹中,有context.xmlweb.xml,这相当于一个顶级的,父级的配置文件,在webapps中的应用配置默认也是“继承”于这些配置文件。

比如说,就算不给应用的web.xml中设置主页,Tomcat也会基于顶级的配置文件,将应用目录中的index.html指定为主页。

4.3 自动加载更新

context元素设置reloadable属性为true,可以让Tomcat自动加载更新后的web应用,当java程序修改后可以不用重启,服务器自动重新加载。但会降低性能。

4.4 后台管理界面

和大多数服务器一样,Tomcat也有一个后台管理的界面,我们可以通过授权进入这个GUI界面,然后方便地操作管理web应用。

通过localhost/manager/html,可以进入主机内web应用的管理界面,在这之前需要在conf下的tomcat-users.xml添加管理用户:

  1. <role rolename="manager-gui"/>
  2. <user username="tomcat" password="tomcat" roles="manager-gui"/>
  • 1
  • 2

然后用该用户进入,管理主机上的所有web应用。

详解Tomcat配置及使用的更多相关文章

  1. 详解Tomcat配置JVM参数步骤

    这里向大家描述一下如何使用Tomcat配置JVM参数,Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个Java虚拟机.您可以选择自己的需要选择不同的操作系统和对应的JDK ...

  2. 转载--详解tomcat配置

    http://www.importnew.com/17124.html  原文链接 几乎所有容器类型的应用都会包含一个名为 server.xml 的文件结构.基本上,其中的每个元数据或者配置都是容器完 ...

  3. tomcat启动nio,apr详解以及配置

    tomcat启动nio,apr详解以及配置 前言 在正文开始之前,我们先在idea工具中看看启动的信息,顺便看下启动的基本信息 在这里插入图片描述可以看到信息有tomcat版本操作系统版本java版本 ...

  4. log4j.properties 详解与配置步骤(转)

    找的文章,供参考使用 转自 log4j.properties 详解与配置步骤 一.log4j.properties 的使用详解 1.输出级别的种类 ERROR.WARN.INFO.DEBUGERROR ...

  5. 详解Tomcat 配置文件server.xml

    前言 Tomcat隶属于Apache基金会,是开源的轻量级Web应用服务器,使用非常广泛.server.xml是Tomcat中最重要的配置文件,server.xml的每一个元素都对应了Tomcat中的 ...

  6. 详解tomcat的连接数与线程池

    前言 在使用tomcat时,经常会遇到连接数.线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector). 在前面的文章 详解Tomcat配置文件server.xm ...

  7. 详解Tomcat的连接数和线程池

    转: https://www.cnblogs.com/kismetv/p/7806063.html#t11 前言 在使用tomcat时,经常会遇到连接数.线程数之类的配置问题,要真正理解这些概念,必须 ...

  8. 详解 Tomcat 的连接数与线程池

      前言 在使用tomcat时,经常会遇到连接数.线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector). 在前面的文章 详解Tomcat配置文件server. ...

  9. 详解tomcat连接数和线程数

    前言 在使用tomcat时,经常会遇到连接数.线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector). 在前面的文章 详解Tomcat配置文件server.xm ...

随机推荐

  1. Qt QML referenceexamples attached Demo hacking

    /********************************************************************************************* * Qt ...

  2. windows dos命令

    dos命令配置环境变量: path=%path%;D:\Installed software\Professional software\Python27   (https://www.cnblogs ...

  3. Cocos2d-X数据、动作、消息的基本操作

    加入类的create方法: CREATE_FUNC(ClassName) 使用这个宏能够为类加入一个create方法. 创建类的对象时一律用Class::create()的形式. 在CREATE_FU ...

  4. nyoj Registration system

    Registration system 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 A new e-mail service "Berlandesk&q ...

  5. ActiveMQ生产者和消费者优化策略

    一.生产者优化策略  默认情况下,ActiveMQ服务端认为生产者端发送的是PERSISTENT Message.所以如果要发送NON_PERSISTENT Message,那么生产者端就要明确指定. ...

  6. protobuf生成

    1,文件路径匹配好在src/main/proto下面 https://blog.csdn.net/u010939285/article/details/78538927

  7. Centos7安装killall,fuser, killall,pstree和pstree.x11

    centos7精简安装后,使用中发现没有killall命令. 经查找,可以通过以下命令解决: yum -y install psmisc 简单介绍一下 psmisc : Psmisc软件包包含三个帮助 ...

  8. PHP安全相关的配置(1)

    PHP作为一门强大的脚本语言被越来越多的web应用程序采用,不规范的php安全配置可能会带来敏感信息泄漏.SQL注射.远程包含等问题,规范的安全配置可保障最基本的安全环境.下面我们分析几个会引发安全问 ...

  9. FineUI 选中多行获取行ID

    http://www.fineui.com/bbs/forum.php?mod=viewthread&tid=2506&page=1 /// <summary>       ...

  10. 深入理解ASP.NET MVC(4)

    系列目录 DataTokens和Areas机制 到目前为止Route对象只剩下DataTokens属性没有涉及,事实上这个Areas机制的核心. DataTokens实际上也是一个RouteValue ...