Eclipse在启动tomcat时做了哪些事

目录

  • Tomcat部署原理

  • Eclipse结合Tomcat部署原理

  • Eclipse修改web项目部署位置

Tomcat部署原理

  1. 配置文件server.xml
  2. 网站根目录
  3. 虚拟目录

配置文件server.xml

这个配置文件的位置是Tomcat安装目录下的conf/server.xml。
各节点的详细解释点这里

网站根目录

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
            
		<Context path="/" docBase="C:\\javaeedemo\\j2ee\\web" debug="0" reloadable="false" />
    
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

</Host>

Host节点配置一个虚拟主机,name属性设置域名,appBase属性设置该虚拟主机映射的网站根目录(相对路径以及绝对路径都行,相对路径相对的是Tomcat的安装目录,这里设置的是Tomcat安装目录下的webapps目录),这个根目录是应用的存放点。 unpackWARs属性为true表示这个网站根目录下的.war文件将被自动解压缩,autoDeploy为true表示这个网站根目录下的子目录将被自动部署成应用并且自动检测 appBase 目录下面的文件变化从而自动应用到正在运行的 Web 应用程序。

我们可以把web应用或者打包好的.war文件放到网站根目录下,Tomcat会自动部署应用。

虚拟目录

server.xml文件中Host节点下的Context节点可以设置虚拟目录,即单独为某个web应用自定义路由,与appBase设置的网站根目录可以同时存在,在网站根目录下的应用会自动生成一个路由:协议://域名:端口号/项目名。如果自定义路由与自动生成的路由相同,则自定义路由会覆盖自动生成路由。Tomcat默认定义了一个路由(将协议://域名:端口号映射到Tomcat安装目录下的网站根目录下的ROOT目录)
例如:

<Context path="/" docBase="C:\\javaeedemo\\j2ee\\web" debug="0" reloadable="false" />
  •  

path设置访问路径,即路由,docBase是真实路径,可以是绝对路径也可以是相对路径(相对于appBase设置的路径),上述代码的路由为协议://域名:端口号/Servlet名称

无论是自动生成路由还是自定义路由,其映射到的目录下面必须包含WEB-INF一级子目录(一般为项目下WebContent目录下的内容拷贝)

Eclipse结合Tomcat部署原理

在Eclipse中启动Tomcat,实际上是启动了一个JAVA进程,这一点我们可以从启动Tomcat时控制面板打印的信息看出,我们随时可以关闭这个进程
图片
注意,不能同时启动外部所安装的Tomcat以及通过Eclipse启动Tomcat。

在Eclipse中启动Tomcat时,实际上是启动了一个Tomcat的副本,这个副本是一个以tmp+一个数字命名的目录,该目录的位置为项目工作空间(workspace,例如我的项目工作空间为C:\Users\me\eclipse-workspace).metadata.plugins\org.eclipse.wst.server.core\tmp+加一个数字,该目录下拷贝了Tomcat安装目录下的东西,包括bin,conf,webapps等,此外,还新增了wtpwebapps目录。

而当我们在Eclipse中部署应用到Tomcat的时候,实际上是把项目(假设项目名为j2eeDemo)WebContent目录下的东西复制到了副本Tomcat的wtpwebapps目录的对应项目目录下(C:\Users\me\eclipse-workspace.metadata.plugins\org.eclipse.wst.server.core\tmp+加一个数字\wtpwebapps\j2eeDemo),即把项目部署到了副本Tomcat的网站根目录wtpwebapps下。此时Tomcat副本的conf下的配置文件server.xml会自动新增一个Context节点用来定义一条自定义路由,这条路由将会映射到C:\Users\me\eclipse-workspace.metadata.plugins\org.eclipse.wst.server.core\tmp+加一个数字\wtpwebapps\j2eeDemo这个目录

<Context docBase="C:\\Users\\me\\eclipse-workspace\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp+加一个数字\\wtpwebapps\\j2eeDemo" path="/j2eeDemo" reloadable="true"/> 
  • 1

参考:浅谈Eclipse调用Tomcat服务的原理浅谈eclipse调用tomcat服务的原理Eclipse调用Tomcat服务的原理

Eclipse修改web项目部署位置

Eclipse中部署方式有三种
图片
1.使用eclipse的工作空间,以上述为例就是 C:\Users\me\eclipse-workspace.metadata.plugins\org.eclipse.wst.server.core,此种方式需要创建Tomcat副本,这也是Eclipse默认的部署方式。

2.使用tomcat的安装目录。

3.自定义路径,这里就是自己选择目录了。

而Eclipse默认网站根目录为wtpwebapps而不是webapps。表示的是项目将会被部署到相应Tomcat副本的wtpwebapps目录下。

那么如何修改这些部署方式和路径呢?

我们可以双击server服务器
图片
图片
可以看到如上图界面,这时就可以更改部署方式以及更改Deploy path网站根目录。如果发现上图要修改的地方为灰色不能修改时,要先把部署在该Tomcat副本下的应用清空,点击上图下方Modules删除应用。
注意修改完要记得保存才能生效。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值