tomcat服务器还没关闭就执行contextDestroyed()方法了

tomcat服务器还没关闭就执行contextDestroyed()方法了

tomcat服务器还没关闭就执行contextDestroyed()方法了

正在回答

登陆购买课程后可参与讨论,去登陆

4回答

1、在执行contextDestroyed()方法同学有做什么操作么?还是它自动执行了?

2、建议同学再试一下,看看是什么情况下执行contextDestroyed()方法的,如果还是自动执行了,请同学贴一下你的代码,老师测试一下。

注意不要贴在回复里,会失去代码的格式。可以在回答里贴一下。祝学习愉快。

  • tryl 提问者 #1
    代码已上传,我就只粘贴了InitSqlSessionListener.java这个类
    2018-11-15 16:22:13
提问者 tryl 2018-11-15 17:38:35

http://img1.sycdn.imooc.com//climg/5bed3cf50001e80013430500.jpg

我的测试结果是这样的,没有点击左边的那个正方形红色按钮之前就把destroy方法中的打印语句执行了。不过刚才我又执行了一遍莫名其妙的好了,因为我跟着课程代码写到了添加jstl依赖。上面的结果是执行在刚写完监听器类的时候。

  • 额。。。可能刚刚是莫名其妙报的错,好了就好啦。也有可能是服务器自己重启了吧。
    2018-11-15 18:38:17
好帮手慕阿莹 2018-11-15 17:26:54

测试同学的代码没有问题。

http://img1.sycdn.imooc.com//climg/5bed3b5e0001248c13750483.jpg

http://img1.sycdn.imooc.com//climg/5bed3b88000124f208930347.jpg

1、关闭后才出现了销毁的方法调用。

2、同学是在什么情况下该方法被调用了呢?同学是否有修改代码呢?

3、同学是用的eclipse还是idea呢?

祝学习愉快

  • 提问者 tryl #1
    用的IDEA
    2018-11-15 17:28:10
  • 好帮手慕阿莹 回复 提问者 tryl #2
    同学是在什么情况下出现的销毁的方法被调用了?
    2018-11-15 17:34:42
提问者 tryl 2018-11-15 16:20:56

InitSqlSessionListener.java代码如下:

package com.damu.listener;

import com.damu.utils.SqlSessionFactoryUtils;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

@WebListener
public class InitSqlSessionListener implements ServletContextListener {

   public void contextInitialized(ServletContextEvent servletContextEvent) {
       System.out.println("SqlSessionFactory is loading...");
       //初始化SqlSessionFactory对象
       SqlSessionFactoryUtils.initSqlSessionFactory();

       //完成初始化后的提示
       System.out.println("SqlSessionFactory has been complete.");
   }

   public void contextDestroyed(ServletContextEvent servletContextEvent) {
       System.out.println("SqlSessionFactory has been destroy.");
       //关闭SqlSession对象
       SqlSessionFactoryUtils.close();
   }
}

其他的和老师一样,只是这个输出语句我和老师略有不同而已

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java数据库开发与实战应用2018版
  • 参与学习           人
  • 提交作业       277    份
  • 解答问题       4297    个

Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师