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
网友评论