tomcat的部署
零、服务器、Servlet容器、web容器
Servlet容器:能够运行Servlet的环境叫做Servlet容器
web容器:能够运行web应用的环境就叫做web容器
weblogic
websphere
tomcat
一、TOMCAT的安装
http://tomcat.apache.org/
有解压版 和 安装版 还分windows 和 linux版,选择自己想要的版本下载
tomcat5 jdk4以上
tomcat6 jdk5以上
tomcat7 jdk6以上
tomcat8 jdk7以上
解压后还需要配置JAVA_HOME环境变量,指向jdk的根目录,指定tomcat启动时使用哪个jdk
通过bin/startup.bat启动tomcat
通过bin/shutdown.bat关闭tomcat
通过访问 http://localhost:8080 如果能够看到tomcat的首页就证明tomcat安装配置成功
可以通过 conf/server.xml 来指定tomcat监听的端口,我们可以改为监听80端口
可选的环境变量:Catalina_home 指定启动哪个位置的tomcat,tomcat在启动时首先检查Catalina_home是否存在,如果存在就启动这个环境变量指向的tomcat,如果不存在就启动当前tomcat,推荐不要配置。
在启动tomcat时可能出现的问题:
安装位置路径中一定不能有中文和空格,可能一时半会没问题,但是不知道什么时候就可能出现意外。
如果在启动时报端口占用的错误,可以通过 netstat -ano 命令查看哪个程序占用了端口,停止后再重启tomcat即可。
二、tomcat的目录结构
bin -- 存放tomcat启动和关闭用的批处理命令
conf -- tomcat的配置文件所在的目录。其中server.xml是tomcat的核心配置文件。
lib -- tomcat运行所需要的jar包所在的目录
logs -- tomcat日志文件所在的目录
temp -- tomcat运行时产生临时文件存放的目录。此目录tomcat自己管理,不需要我们操心。
webapps -- localhost虚拟主机管理的目录,放置在这个目录下的web应用可以通过浏览器访问localhost虚拟主机来访问。
work -- tomcat的工作目录,在tomcat运行的过程中产生的工作文件存放在这个目录下。
!!!三、web应用
1.web应用的目录结构
game
|
|--静态web资源、jsp,放置在web应用根目录下的资源,通过浏览器可以直接访问。
|
|--WEB-INF 此目录时web应用中的一个特殊的目录,这个目录可以没有,但是一旦有了必须符合规定的结构
放置在这个目录下的资源是被保护起来的,通过浏览器没有办法直接访问。
|
|--classes 用来存放动态web资源的class文件的目录
|--lib 动态资源依赖的jar包存放的目录
|--web.xml 当前web应用的核心配置文件,当前web应用的所有的配置操作都需要在这个文件中进行。
**实验:通过web.xml配置web应用的主页。
2.部署web应用到虚拟主机中 - web应用的虚拟路径映射。
方式一:
在[tomcat]/conf/server.xml中的<Engin>下的要配置的虚拟主机的<Host>标签下配置<Context path="虚拟路径" docBase="web应用的真实路径" /> 。
这种方式每次配置后都需要重新启动服务器,并不是特别好。
如果将path配置为空,则当前web应用成为缺省web应用。
方式二:
在[tomcat]/conf/[engin]/[host]/xxxxxx.xml 其中文件名将成为当前web应用的虚拟路径,文件内部编写<Context docBase="web应用的真实路径"/>指定web应用的真实路径。
这种方式的配置不需要重启服务器就可以起作用。
只要将文件名设置为ROOT.xml则当前web应用成为缺省web应用。
方式三:
虚拟主机在配置的时候可以指定一个默认管理的目录。只要将web应用放置到该目录下就以了。
这种方式的配置不需要重启服务器就可以起作用。
只要将web应用文件夹的名字设置为ROOT,则当前web应用成为缺省web应用。
!!!四、虚拟主机
在[tomcat]/conf/server.xml 中的<Engin>下配置<Host>标签就可以配置一台虚拟主机。<Host name="虚拟主机的名字" appBase="虚拟主机管理的目录"/>其name属性必须存在,appBase属性可以没有,如果没有则该虚拟主机不管理任何目录。
改完我们还需要到NDS服务器中设置ip地址和域名的映射才能通过浏览器使用域名访问。但是一般DNS不能随便动,我们可以通过Hosts文件模拟DNS的功能,完成实验。
在<Engin>标签上有一个defaultHost的属性,可以通过这个属性配置当前引擎的缺省虚拟主机,当用户通过ip来访问无法确定当前访问的是哪个虚拟主机时,访问这个缺省虚拟主机。
五、其他相关
1.打war包
在发布的过程中我们通常会将web应用打包,一般都打成war包。将war包放置到虚拟主机管理的目录中,服务器认识war包,会自动进行解压,实现应用的发布。
方式一: jar -cvf xxxx.war *
方式二: 用压缩工具压缩为 xxxx.zip 修改后缀.zip为.war即可。
2.通用web.xml 和 通用context.xml
[tomcat]/[conf]/web.xml 这个文件其实是通用的web.xml文件。 当前tomcat中所配置的所有的web应用的web.xml文件 都可以认为是"继承"自这个文件。
[tomcat]/[conf]/context.xml 这个文件其实是通用的<Context>配置,当前tomcat中的所有的web应用的<Context>配置默认都继承自这个<Context>
tomcat的部署的更多相关文章
- JFinal 项目 在tomcat下部署
原文:http://my.oschina.net/jfinal/blog/353062 首先明确一下 JFinal 项目是标准的 java web 项目,其部署方式与普通 java web 项目没有任 ...
- Intellij IDEA 创建Web项目并在Tomcat中部署运行(不使用maven)【转载】
原文链接:http://www.thinksaas.cn/topics/0/350/350000.html 一.创建Web项目 1.File -> New Module,进入创建项目窗口 2.选 ...
- 在tomcat下部署工程
xx系统第一期工程完成,今天老大要我去部署系统,从来就没有在tomcat下部署过,一直都是在myeclipse下部署.启动.运行即可,所以这次遇到了几个问题,记录下来. tomcat启动 在安装tom ...
- [saiku] 在 Tomcat 下部署 saiku
上一篇介绍了如何配置免登录[免登录进入管理台] 本文主要是一步一步解释如何在Tomcat下部署saiku,为了让你更好更快的使用. 开始之前,假设你已经比较熟悉数据集市数据库,以及如何建立Mondri ...
- Java学习-032-JavaWeb_001 -- Tomcat环境部署及基本配置
首先到 Tomcat 官网,下载对应的版本,我本机的系统是 WIN7 64BIT 的,因而我选择的是64bit 的zip包,如下图所示:
- 【转】Tomcat中部署java web应用程序
http://www.blogjava.net/jiafang83/archive/2009/06/02/279644.html 转载:今天给大家介绍怎样在Tomcat5.5.9中部署Java Web ...
- Eclipse用Tomcat插件部署Java Web项目
Eclipse版本3.7.2,Tomcat插件是3.3 详细步骤如下: 1.下载tomcatPlugin插件 tomcatPlugin下载地址http://download.csdn.net/deta ...
- Tomcat 网站部署(三)
一.Tomcat的部署方式有以下两种 1.自动部署 2.虚拟目录 二.自动部署 文件必须放在放在webapps就可以了,可以用这样访问 http://localhost:8080/放在webapps目 ...
- Intellij IDEA 创建Web项目并在Tomcat中部署运行
一.创建Web项目 1.File -> New Module,进入创建项目窗口 2.选择Java类型,在 Module name 处输入项目名,点击Next 3.勾选 Web Applica ...
- Tomcat中部署WEB项目的四种方法
对Tomcat部署web应用的方式总结,常见的有以下四种: 1.[使用控制台部署] 访问Http://localhost:8080,并通过Tomcat Manager登录,进入部署界面即可. 2.[利 ...
随机推荐
- C++ Get Current Time 获取当前时间
在做项目中,我们经常需要获取系统的当前时间,那么如何获取呢,参见下面的代码: /* asctime example */ #include <stdio.h> /* printf */ # ...
- WPF 中Frame + Page 的使用
1 在window 的设计的时候 ,中间需要进行页面切换的时候,顶一个Frame <Frame Name="MainPage" NavigationUIVisibility ...
- WBS练习
我们把这次团队程序设计分成了6个模块,让每一个同学都能参与其中,然后让每一个人选一个自己喜欢的模块,最后数据库设计这个部分就大家一起来做. Everybody's task allocation is ...
- PHP 设计模式 笔记与总结(10)数据对象映射模式 2
[例2]数据对象映射模式结合[工厂模式]和[注册模式]的使用. 入口文件 index.php: <?php define('BASEDIR',__DIR__); //定义根目录常量 includ ...
- CentOS6.4下安装TeamViewer8
今天测试selenium调用firefoxdriver,该驱动无法在无界面环境中运行,需要远程连接到服务器进行操作,于是有了下面安装TeamViewer的过程. 先前尝试很多次也没有运行起来TeamV ...
- Unity 中场景切换
Unity游戏开发中,单个Scene解决所有问题似乎不可能,那么多个Scene之间的切换是必然存在.如果仅仅是切换,似乎什么都好说,但是在场景比较大的时候不想让玩家等待加载或者说场景与场景之间想通过一 ...
- Python函数1
Python 函数命令的使用 想想我们之前数学中学到的函数,首先我们需要定义一个函数,例如f(x)=x, 当x输入任意数的时候,f(x)都能输出和x相等的数值. 那么在Python中是如何实现的呢? ...
- phpexcel 读取数据
最近公司做一个客户导入会员的功能,以前导入都是使用csv格式导入的,但是客户反应问题挺多的,普遍是乱码(由于各种系统各种环境可能引起编码问题).最近想着就把这个导入完全改成excel导入,就研究了下p ...
- CSS :before和:after (转)
前几天的晚上较全面的去看了下css的一些文档和资料,大部分的样式运用都没什么大问题了,只是有些许较陌生,但是也知道他们的存在和实现的是什么样式.今天主要想在这篇学习笔记中写的也不多,主要是针对:bef ...
- pro7
1.本次课学习到的知识点: 函数的作用 确定函数的功能 定义函数 调用函数 2.实验过程中遇到的问题及解决方法: 定义函数时 变量的定义会出现混乱 通过看例题 多练习 逐渐熟悉 需从数学角度解决问题时 ...