零、服务器、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]/[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>