回顾:Tomcat详细介绍02
目录
Tomcat常用部署方式
这里介绍一下Tomcat在生产环境下常见的三种部署方式
在部署目录下放置war包
这是一种最简单最常见的部署方式,在tomcat的server.xml文件中有如下配置:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> ...... </Host>
此文件说明虚拟服务器localhost,使用webapps作为部署目录,只要将war包部署在该目录中即可完成部署。
- unpackWARs参数表示,tomcat会对部署在webapps目录中的war文件自动解压,如果为false,则不执行自定解压,但会影响程序的运行效率
- autoDeploy表示自动部署,即热部署
注:这种方式也可以直接部署文件夹,但要求部署的文件夹要符合web目录的标准
例:
选中项目右键,点击Export,导出WAR file
在Destination输入框中填写地址,也可以点击Browse...选择路径
将导出的.war文件存放到webapps目录下即可
通过server.xml部署
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> <!-- 部署web项目 --> <Context path="/webdemo" docBase="D:\work\eclipsews\webdemo\WebContent"></Context> </Host>
这种方式需要修改server.xml,不建议使用
例:
在conf目录中,找到server.xml文件,右键以记事本文件打开进行编辑在Host标签中加入Context标签,其中path属性为服务器启动访问,docBase为项目所在位置
独立部署文件
首先在\conf\Catalina目录,在依据虚拟服务器名称一致的方式,创建一个目录(如:localhost),创建一个xml文件,完成项目部署,文件名与部署项目的上下文名称对应,例如:webdemo.xml,内容如下:
<Context path="/webdemo" docBase="D:\work\eclipsews\webdemo\WebContent"></Context>
Tomcat加载流程
如上图所示,当用户需要访问某一个页面时,会被监听listenner接收,将内容发送到连接器(connector)中,解析端口号,当通过了http1.1协议过后,connector会将请求转换成套接字(socket)请求,给到容器(Container)中的引擎(Engine),一个Engine中存在多个虚拟主机(host),此时映射器(mapper)会将请求发送到对应的host中,在warpper(servlet的容器)中通过filter chain(过滤器链)过滤掉无用的信息,再去访问context(应用上下文)中的servlet(应用程序)