详解Tomcat配置及使用
1. 初识Tomcat
此处以 Tomcat 7.0.88
版本为例。
1.1 启动
进入bin
目录,在点击startup.bat
启动时,如果窗口一闪而过,启动失败,一般是因为环境变量没有设置好。
设置:
JAVA_HOME 为 JDK安装路径。
Tomcat就可以根据JAVA_HOME找到JDK,然后启动了。(Tomcat依赖于java)
- 1
- 2
- 3
- 4
1.2 关闭
同样的,bin
目录中可以点击shutdown.bat
将其关闭,如果关闭失败,一般是因为环境变量没有设置好。
设置:
CATALINA_HOME 为 Tomcat安装路径。
这个环境变量能够让Tomcat在该变量所配置的目录来启动。
注意!如果本机安装了多个Tomcat,不论点击谁的startup.bat,启动的都是CATALINA_HOME变量所指向的Tomcat。因为该原因,一般也不推荐配置这个环境变量。
- 1
- 2
- 3
- 4
- 5
- 6
1.3 配置端口
进入conf目录,编辑server.xml配置文件。
- 1
找到下面这段配置:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
- 1
- 2
- 3
可以将port
的值修改为80
,这样下次启动就访问浏览器localhost
即可,因为浏览器的默认端口就是80
。
1.4 关于端口占用问题
使用命令:
netstat -ano
可以找到占用端口的进程pid,再进入任务管理器,将对应pid的进程关闭。
如果没有找到pid,在属性显示栏右键勾选pid,即可看到。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
2. Tomcat目录结构
bin —— 存放启动和关闭Tomcat的脚本文件。
conf —— 存放Tomcat服务器的各种配置文件。
lib —— 存放Tomcat服务器的支撑jar包。
logs —— 存放Tomcat的日志文件。
temp —— 存放运行时产生的临时文件。
webapps —— web应用所在目录,供外界访问的web资源的存放目录。
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
中,可以看到有这么一段配置:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
- 1
- 2
这就是Tomcat
初始自带的一个虚拟主机localhost
,并且外部访问所有应用资源所在的根目录是webapps
。
Host
元素中的Context
元素,代表web应用。
关于context元素的属性:
- docBase:
指定web应用程序的文档基目录或者WAR文件的路径名。可以是绝对路径也可以是相对于appBase的路径名。
- path:
指定web应用程序的上下文路径。
- unpackWAR:
如果为true,Tomcat在运行web程序前将展开所有压缩的web应用程序,默认值是true。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
配置web应用给虚拟主机:
方法一:
在Server.xml的<Host>
标签中,添加<Context/>
标签,就可以为该虚拟主机配置一个web应用了。
<Context path="/news" docBase="E:\news" />
- 1
虚拟路径映射:
path是虚拟路径,docBase是真实路径。
当URL中输入localhost/news,实际上是去系统的E:\news下寻找资源。
- 1
- 2
- 3
缺省web应用的配置:
即默认的web应用,当不写web应用路径时,默认访问的就是这个应用。
<Context path="" docBase="E:\news" />
- 1
- 2
- 3
注意,修改完这些配置后,服务器都需要重启,这种方式不是很好。
方法二:
在 Tomcat/conf/Catalina/[Host]
目录下写一个xml文件,其中,xml文件的名字就是虚拟路径,在这个xml中可以添加标签,再在其中配置真实路径。
如:conf/Catalina/localhost/news.xml
的配置:
<?xml version="1.0" encoding="utf-8"?>
<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应用的目录结构不合法,可能会出现各种问题。
news
|-- ①
|-- WEB-INF ②
|-- classes ③
|-- lib ④
|-- web.xml ⑤
- 1
- 2
- 3
- 4
- 5
- 6
①:静态资源和JSP文件都可以直接放置在web应用的目录下,浏览器可以直接访问到。
②:这个文件夹可以没有,但最好有,如果有则一定要保证其目录结构完整。放置在WEB-INF
目录下的所有资源浏览器没有办法直接进行访问。
③:动态web资源运行时的java类class
文件要放在这个目录下。
④:动态web资源运行时所依赖的jar
包要放在这个目录下。
⑤:整个web应用的配置文件,配置主页/Servlet的映射/过滤监听器的配置都需要依赖这个文件进行。
当直接访问localhost
时,默认是获取缺省web应用目录下的index.html
文件。
可以在WEB-INF
的web.xml
中设置主页的指向:
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"
metadata-complete="true">
<welcome-file-list>
<welcome-file>
hello.html
</welcome-file>
</welcome-file-list>
</web-app>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
这样当访问localhost
时,会自动获取hello.html
内容。
3.5 配置虚拟主机
在conf/server.xml中<Engine>标签下添加一个<Host>标签,就可以新增一台虚拟主机了。
name —— 指定虚拟主机的名称,浏览器通过这个名称访问虚拟主机。
appBase —— 虚拟主机管理的目录,放置在这个目录下的web应用,虚拟主机可以自动加载。
- 1
- 2
- 3
- 4
- 5
由于浏览器访问地址时,需要将地址翻译成对应的ip才能找到服务器,这其中翻译的过程是由dns服务器来实现的,我们没办法修改dns服务器,此时可以修改hosts
文件来模拟DNS功能。
缺省虚拟主机
如果来访者通过ip地址来访问,这个时候服务器无法辨别当前要访问的是哪台虚拟主机中的资源,会默认访问缺省虚拟主机。
缺省虚拟主机可以通过在server.xml
中engine
标签上的defaultHost
属性进行配置。
<Engine name="Catalina" defaultHost="localhost">
- 1
4. 一些其他的配置说明
4.1 war包
通常我们可以把一个web应用的文件夹经过命令:
jar -cvf my.war news
将news应用的资源文件压缩打包成 my.war,然后发送到webapps下,war文件会自动解压,可以直接被访问。
其实war就是zip,将zip文件后缀名改一下也能达到效果。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
4.2 通用的配置
在conf
文件夹中,有context.xml
和web.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
添加管理用户:
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
- 1
- 2
然后用该用户进入,管理主机上的所有web应用。
详解Tomcat配置及使用的更多相关文章
- 详解Tomcat配置JVM参数步骤
这里向大家描述一下如何使用Tomcat配置JVM参数,Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个Java虚拟机.您可以选择自己的需要选择不同的操作系统和对应的JDK ...
- 转载--详解tomcat配置
http://www.importnew.com/17124.html 原文链接 几乎所有容器类型的应用都会包含一个名为 server.xml 的文件结构.基本上,其中的每个元数据或者配置都是容器完 ...
- tomcat启动nio,apr详解以及配置
tomcat启动nio,apr详解以及配置 前言 在正文开始之前,我们先在idea工具中看看启动的信息,顺便看下启动的基本信息 在这里插入图片描述可以看到信息有tomcat版本操作系统版本java版本 ...
- log4j.properties 详解与配置步骤(转)
找的文章,供参考使用 转自 log4j.properties 详解与配置步骤 一.log4j.properties 的使用详解 1.输出级别的种类 ERROR.WARN.INFO.DEBUGERROR ...
- 详解Tomcat 配置文件server.xml
前言 Tomcat隶属于Apache基金会,是开源的轻量级Web应用服务器,使用非常广泛.server.xml是Tomcat中最重要的配置文件,server.xml的每一个元素都对应了Tomcat中的 ...
- 详解tomcat的连接数与线程池
前言 在使用tomcat时,经常会遇到连接数.线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector). 在前面的文章 详解Tomcat配置文件server.xm ...
- 详解Tomcat的连接数和线程池
转: https://www.cnblogs.com/kismetv/p/7806063.html#t11 前言 在使用tomcat时,经常会遇到连接数.线程数之类的配置问题,要真正理解这些概念,必须 ...
- 详解 Tomcat 的连接数与线程池
前言 在使用tomcat时,经常会遇到连接数.线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector). 在前面的文章 详解Tomcat配置文件server. ...
- 详解tomcat连接数和线程数
前言 在使用tomcat时,经常会遇到连接数.线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector). 在前面的文章 详解Tomcat配置文件server.xm ...
随机推荐
- 使用Inno Setup Compiler制作安装软件包
前言 项目开发完成之后,需要程序打包发行,本文使用Inno Setup工具制作安装软件包. 系统环境 系统:win7_x64 工具:Inno Setup Complier 实现步骤 1.下载安装Inn ...
- 实验吧—隐写术——WP之 欢迎来到地狱
解压压缩包后出现三个文件.jpg .zip .docx 发现图片打开不显示,用winhex打开发现缺少文件头,将jpg的文件头补上 保存后图片可以打开 是一个百度网盘的链接,注意l和1的区别,网盘里是 ...
- Linux块设备驱动_WDS
推荐书:<Linux内核源代码情景分析> 1.字符设备驱动和使用中等待某一事件的方法①查询方式②休眠唤醒,但是这种没有超时时间③poll机制,在休眠唤醒基础上加一个超时时间④异步通知,异步 ...
- hive 数据导出三种方式
今天我们再谈谈Hive中的三种不同的数据导出方式.根据导出的地方不一样,将这些方式分为三种:(1).导出到本地文件系统:(2).导出到HDFS中:(3).导出到Hive的另一个表中.为了避免单纯的文字 ...
- 如何构建 MVC&AJax&JSon示例
背景: 博客中将构建一个小示例,用于演示在ASP.NET MVC4项目中,如何使用JQuery Ajax. 直接查看JSon部分 步骤: 1,添加控制器(HomeController)和动作方法(In ...
- js ui框架 My97日期控件 富文本编辑器
My97日期控件 http://www.my97.net/dp/index.asp 富文本编辑器 http://www.kindsoft.net/demo.php 百度的magic也不错 http:/ ...
- zz 【见闻八卦】《金融时报》年度商业书单:互联网题材占一半
[见闻八卦]<金融时报>年度商业书单:互联网题材占一半 文 / 见闻学堂 2014年12月18日 09:47:38 0 中国最好的金融求职培训:见闻学堂(微信号:top-elites) ...
- 【转】每天一个linux命令(56):netstat命令
原文网址:http://www.cnblogs.com/peida/archive/2013/03/08/2949194.html netstat命令用于显示与IP.TCP.UDP和ICMP协议相关的 ...
- 在启动Windows Process Activation Service时,出现错误13:数据无效
在启动Windows Process Activation Service时,出现错误13:数据无效 1.错误原因: 当Windows Process Activation Service从C:\Wi ...
- Redis内存数据库操作命令详解
一.连接操作相关的命令 quit:关闭连接(connection) auth:简单密码认证 二.对value操作的命令 exists(key):确认一个key是否存在 ...