今天做一个开发的时候,修改jsp的源文件,但是相应的修改代码没有执行,出不来效果,这种问题遇到过几次,这里就总结一下,做一下记录,避免下次再出现这种情况。
原因及解决方法
我遇到的两种情况:
- 第一种情况是修改错了文件,这是很尴尬的情况。这种问题的排除方式可以首先删除jsp生成的java文件和class文件,然后访问对应的页面,看看有没有生成相应的java文件和class文件。这也有一个弊端,如果jsp是被静态引用的话,它就不会产生对应的java文件和class文件。
- 第二种情况是java和class文件的生成日期在jsp的最新修改日期之后。因为jsp需要首先编译成为java文件,然后再编译成为class文件,编译jsp首先会检查对应的jsp有没被编译成对应的java文件,如果没有则直接编译,如果有则会检查对应的java文件的生成日期是不是早于jsp的最后修改日期,如果是则编译,如果不是则不编译。因为需要测试时间相关的代码,我修改电脑的时间,将时间调前了,在此期间修改了多次代码,后来又将时间调整为正确的时间,调整之后我再修改jsp源码就不会执行相应的修改代码,这就是因为我在将时间修改为正确的时间之前,编译的java代码时间比正确的时间新,所以修改的源码不会编译,这样之后修改的代码也不会执行。解决方法就是删除该jsp编译成的java文件和class文件。