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目录的标准
从eclipseli里面导出war包
将war包放到指定的目录
在到bin目录下面运行statrup.bat运行生产环境将自动解压,也可以不解压直接运行,会影响程序速度
通过server.xml的部署
这种方式需要修改server.xml,不建议使用
独立部署文件
- 首先来到 \conf\Catalina 目录,
- 然后再依据虚拟服务器名称一致的方式,创建一个目录(如:localhost)
- 创建一个xml文件,完成项目部署,文件名与部署项目的上下文名称对应,例如:webdemo.xml,内容如下:
<Context path="/tomcat" docBase="F:\web\tomcat\src\main\webapp"></Context>
拿到上面的项目路径在tomcat里面的 \conf\Catalina 目录,然后再依据虚拟服务器名称一致的方式,创建一个目录(如:localhost)在里面写一个.xml文件
这样就可以部署成功了
eclipse中的tomcat配置
1) eclipse 中 tomcat的基本配置
2) eclipse 中 tomcat的运行基本原理
3) 常见问题及处理
eclipse里面部署的tomcat是借用了tomcat的运行,没有将项目部署到apache的tomcat部署环境下面
可以从下图来看到eclipse的虚拟部署环境
点击open launch configuration可以看到部署目录的位置
这是博主位置eclipse的部署tomcat的目录
-Dcatalina.base="F:\web\.metadata\.plugins\org.eclipse.wst.server.core\tmp0" -Dcatalina.home="F:\Jee\tomcat\apache-tomcat-9.0.60" -Dwtp.deploy="F:\web\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps"
关于web监听器
web监听器的类型:
- ServletContextListener 监听Context对象的创建与销毁,Context即web应用
- ServletContextAttributeListener 监听在Context中发生增加,更新,删除对象的事件
- HttpSessionListener 监听session对象的创建与销毁
- HttpSessionAttributeListener 监听在session中发生的增加,更新,删除对象的事件
- ServletRequestListener 监听request对象的创建
- ServletRequestAttributeListener 监听在session中发生的增加,更新,删除对象的事件
以上6中监听器,需要在web.xml中进行配置,除以上6种监听器还有下面两种监听器:
- HttpSessionBindingListener 当对象被放入session里执行valueBound,被移除时执行valueUnbound
- HttpSessionActivationListener 服务关闭时可以使用该监听器将session数据持久化到磁盘,服务重启会session数据会从磁盘重新加载,对应的使用示例可以参考tomcat的基础介绍
https://blog.csdn.net/WZJ278/article/details/125268670?spm=1001.2014.3001.5501
以上两个监听器主要用于对session内对象的监听, 与上面的6中监听器不同的是,这两种监听器虽然需要实现对应的Listener接口,但不用在web.xml中配置。