前两天上班,遇到一个问题,就是经常换同一个jsp页面,并且修改过的。会导致页面显示不出来,这问题让我痛苦了一天
后来才知道怎么回事
不说了,进入正题:
最先我是这样处理,当时三个服务器测试,一个本地,两个线上
本地测试OK,有一个线上也测试OK,但是别一个就显示不出来,那个一就是经常换jsp页面的
当时有大神指导,说jsp页面有错,但我想两台测试都是OK的,别一个最先放上去也是OK的
当时大神说,先测试html代码看有没有错误,在看java代码有错没有
换完所有html代码没有看见错,而且页面还显示出来了
那问题肯定出在java代码上,最后一行一行查找,问题终于找出来了。
就是因为那一段代码 ,但我们分析代码,发现代码也没有任务问题,那问题出在那呢
最后在网上找了很多资料,才发现tomcat解析jsp代码会生成class代码,而运行的又是class代码
当前任务jsp中新代码时,运行发现在新的代码,tomcat会解析最新的jsp文件,生成class文件
而原始解析过的文件,发现没有可解析的,tomcat就不会在次解析文件,继而会使用最新解析的class文件
这样会导致页面显示不出来
解决办法:找到编译的jsp的class文件,删除对应的class文件,然后让tomcat强制重新解析jsp,然后就搞定了
以上说的可能不是太准确,但大概意思就是上面的,欢迎大家反指出不对的地方,毕境我也是一个新手