JavaEE-Tomcat配置

1.Tomcat目录结构

bin      tomcat二进制程序,启动/关闭批处理
conf     配置文件
lib      运行依赖库(jar包)
logs     日志文件
temp     临时目录
webapps  网站web应用默认存放目录
work     工作目录(jsp的缓存class,java)

2.Host主机(网站)

一个Tomcat可以运行多个Host主机(即网站)

在 conf/sever.xml 配置
<Engine defaultHost="默认的主机名" name="Catalina">
	<Host appBase="Host存放路径" name="Host主机名(一般是域名)" />
	<Host appBase="Host存放路径" name="Host主机名" />
	<Host appBase="Host存放路径" name="Host主机名" />
</Engine>
	
defaultHost 设置当前IP的默认Host
            如果浏览器直接通过IP访问,就会转到这个默认Host(一个IP可以绑定多个Host域名)
			如果浏览器通过域名访问,就会转到同名的Host主机

3.WEB应用(webapp)

一个Host可以有多个web应用模块, WEB应用之间相互独立(代码没有依赖)

WEB应用的目录结构
	|-html,css,js,jsp   浏览器直接访问
	|-WEB-INF           浏览器无法直接访问
	     |-classes      java字节码			
	     |-lib          jar包			
	     |-web.xml      配置WEB首页/配置servlet的访问路径(URL)/配置监听器和过滤器

配置WEB应用
1.直接在Host文件夹下存放WEB文件夹,就完成WEB应用配置,无需修改conf/server.xml
	<Host appBase="Host存放路径" name="Host主机名" autoDeploy="true" unpackWARs="true"/>
	
	若WEB文件夹名为ROOT,则该WEB应用为默认WEB应用(不用加WEB子路径,直接通过Host主机(IP/域名)访问)
				
2.在 conf/server.xml
	<Host appBase="Host存放路径" name="Host主机名" autoDeploy="true" unpackWARs="true">
		<Context docBase="WEB应用存放路径" path="WEB应用URL路径">
		<Context docBase="WEB应用存放路径" path="">
	</Host>
	
	一个Context代表一个WEB应用
	
	若path="", 则该WEB应用为默认WEB应用
	
3.在 conf/Catalina/Host主机名/X.xml
	在X.xml中添加 <Context docBase="WEB应用存放路径">	
	X.xml文件名是WEB应用URL路径,对于多级URL路径,用#代替/(因为文件名不能含有/)
	
	若xml文件名=ROOT.xml, 则该WEB应用为默认WEB应用	

4.Tomcat自动部署和自动加载(autoDeploy和reloadable的区别)

<Host appBase="webapps" name="lioil.win" autoDeploy="true" unpackWARs="true">
	<Context docBase="xxx" path="xxx" reloadable="true"/>
</Host>

reloadable(自动加载java字节码class): 
	当WEB应用/WEB-INF/lib目录中的jar 或 classes目录中的class文件被增删改, Tomca自动重新加载java类(代价大),该选项适合调试开发

autoDeploy(自动部署WEB应用): 
	当webapps目录中的WEB应用被修改(WEB应用目录被增删改 或 /WEB-INF/web.xml被修改), Tomcat会自动重新部署WEB应用,该选项方便应用部署
	如果autoDeploy = "false", 则每次部署WEB应用,都要重启Tomcat
	
总结: reloadable 和 autoDeploy 区别很明显, 一个是监听java类的修改以及自动加载类, 另一个是监听WEB应用的修改以及自动部署

简书: http://www.jianshu.com/p/7504b856c46a
CSDN博客: http://blog.csdn.net/qq_32115439/article/details/54584621
GitHub博客:http://lioil.win/2017/01/17/Tomcat.html
Coding博客:http://c.lioil.win/2017/01/17/Tomcat.html