Tomcat热加载和热部署

本文详细介绍了Tomcat的热加载和热部署。热加载允许在运行时重新加载class,不丢失Session,常见于开发环境。而热部署则会完全重新部署Web应用,适合生产环境。在Tomcat中,热加载通过配置reloadable参数开启,并由Context容器的后台线程监控文件变化。热部署则是检测到War包更新时,删除旧文件并重新解压部署。两者的区别在于热加载仅重新加载类,热部署涉及整个应用的重启。
摘要由CSDN通过智能技术生成

热部署就是在服务器运行时重新部署项目,热加载即在在运行时重新加载class,从而升级应用。

 

通常情况下在开发环境中我们使用的是热加载,因为热加载的实现的方式在Web容器中启动一个后台线程,定期检测相关文件的变化,如果有变化就重新加载类,这个过程不会清空Session。

 

而在生产环境我们一般应用的是热部署,热部署也是在Web应用后台线程定期检测,发现有变化就会重新加载整个Web应用,这种方式更加彻底会清空Session。

 

# 热加载

 

热加载其实我们在开发过程中经常使用,例如我们使用Idea开发时,我们在设置页面可以进行设置,当修改文件时,我们可以选择不重启项目,选择重新加载此文件。

 

而在Tomcat中也能设置,Tomcat默认情况下是不开启热加载的。需要在Tomcat路径下的Context.xml中配置reloadable参数来开启这个功能。

 

<Context reloadable="true"/>
 

我们演示一下Tomcat是如何热加载的。在webapp下我们新建了一个项目,里面的Servlet文件如下

 

public class MyServlet extends HttpServlet {
      @Override    protected void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {
          System.out.println("MyServlet 在处理 get()请求...");        PrintWriter out = response.getWriter();        response.setContentType("text/html;charset=utf-8");        out.println(">My Servlet Version1!
");    }    @Override    protected void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {
          System.out.println("MyServlet 在处理 post()请求...");        PrintWriter out = response.getWriter();        response.setContentType("text/html;charset=utf-8"); 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值