第四个war包实验记录之destroy()的调用方法、运用插旗观察程序运行(第八次j2ee学习)

4.23日,对于第四个war包的相关记录与问题回答


先打开readme.jsp,查看老师所给出第四个war包需要回答的问题,可以看出都是上课时老师有提到的内容,对我们的要求就是先观察页面输出,然后在服务器中进行运行,然后观察console的输出,还需要用插旗观察程序的运行情况
在这里插入图片描述


一步一步来,首先先观察源程序代码
在这里插入图片描述
在这里插入图片描述
源码中给出很多输出,每当你进行操作时,你的网络页面与console都会进行相应的输出,当我运行index.html时,网络页面展示为
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们运行了此html文件,之后点击激活servlet选项,页面显示已经被访问了一次,然后刷新页面,页面提示重新提交表单,确认之后,可以看到servlet被访问两次


刚才展示的是在网页中的展现,在console中,输出结果为
在这里插入图片描述
可以看到这边显示中没有对于当时LifeServlet.java文件中的destory()方法进行执行,对于这个操作需要要求我们关闭服务器,然后摧毁实现,但当我进行了此操作,也并无相应输出
我用的server是tomcat,当我在ie上运行servlet程序,关闭ie或者关闭tomcat都不能测试到其destroy()被执行。我在destroy()中设定在日志文件输出执行信息。所以如果destroy()被执行,查看日志文件应该可以发现的
并且我还有这个问题:
如果destroy()只在tomcat关闭时才执行,那不是只要客户端运行servlet,在服务器端都会有实例在运行,所有的实例都只能等到服务器关闭时才会全部执行destroy(),这样的话服务器开的时间越长,其上运行的实例不是越来越多?哪怕客户端早已不再执行该servlet.
在进行搜索后我了解到,之前无法释放问题的解决方案:我是在eclipse javaee版本中尝试的,不要用console中的terminate那个红色按钮,找到服务器server界面,右击stop,就可以看见destory()方法的调用
在这里插入图片描述


那么如何按照老师要求,通过插旗来观察程序运行情况呢
插旗其实就是,在程序中,插入变量输出,通过输出结果,了解观察程序运行情况,程序中的“System.out.println(“该Servlet的doGet方法被执行了一次”);”
“System.out.println(“该Servlet的doPost方法被执行了一次”);”
便是插旗法的运用,总的来说第四个war包难度也较为简单

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值