tomcat的目录结构
/bin 存放启动和关闭tomcat的脚本文件
/conf 存放tomcat服务器的各种配置文件,最重要的是server.xml
/server 包含3个子目录,classes、lib、webapps
/server/lib 存放tomcat服务器所需的各种JAR文件(只能tomcat服务器访问)
/server/webapps 存放tomcat自带的两个web应用,admin和manager应用
/common/lib 存放tomcat服务器及所有web应用都可以访问的JAR文件
/shared/lib 存放所有web应用都可以访问的JAR文件(tomcat服务器不能访问)
/logs 存放tomcat的日志文件
/webapps 当发布web应用时,默认情况下把web应用文件放于此目录
/work tomcat把由JSP生成的Servlet放于此目录
Java web组成
Java web应用由一组静态HTML页、Servlet、JSP和其他相关的class组成。每种组件在web应用中都有固定的存放目录。web应用的配置信息存放在web.xml文件中。在发布某些组件(如Servlet)时,必须在web.xml文件中添加相应的配置信息
web应用的目录结构
web应用具有固定的目录结构,比如开发一个名为helloapp的应用,在<CATALINA_HOME>/webapps目录下创建这个目录结构。
/helloapp web应用的根目录,所有的JSP和HTML文件都存放于此目录下
/helloapp/WEB-INF 存放web应用的发布描述文件web.xml
/helloapp/WEB-INF/classes 存放各种class文件,Servlet类文件也放于此目录
/helloapp/WEB-INF/lib 存放web应用所需的各种JAR文件,比如可以存放JDBC驱动程序的JAR文件
tomcat的类装载器先装载classes目录下的类,再装载lib目录下的类,如果两个目录下存在同名的类,classes目录下的类具有优先权
在server.xml中加入<Context>元素
<Context>元素是<CATALINA_HOME>/conf/server.xml中使用最频繁的元素,它代表了运行在<Host>上的单个Web应用,一个<Host>中可以有多个<Context>元素,每个Web应用必须有唯一的URL路径,path属性设定。
<!--Define the default virtual host-->
<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true">
....
....
<Context path="/helloapp" docBase="helloapp" debug="0" reloadable="true" />
</Host>
path属性:指定访问该web应用的URL入口
docBase:指定web应用的文件路径,可以给绝对路径,也可以给Host的appBase的相对路径
reloadable:如果设置为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和lib目录下class文件的改动,如果被更新,服务器会自动重新加载web应用
创建并发布WAR文件
1>进入helloapp应用的根目录<CATALINA_HOME>/webapps目录下
2>把整个Web应用打包为helloapp.war,命令为: jar cvf helloapp.war *.*(解压参数为xvf)
3>把helloapp.war文件复制到<CATALINA_HOME>/webapps目录下
4>删除原来的helloapp整个目录(一定要删除整个目录)
5>启动Tomcat服务器
根据<CATALINA_HOME>/conf/server.xml里面Host的unpackWARs属性,如果为true,则Tomcat启动的时候会自动把war文件解压,展开为开放式的目录结构