1. 我要读书。 2. 路.慢慢走 莫心急。
配置了 reloadable = "false" 当 jsp 的页面部分(而非<%= %> ) 部分有更新时,服务器不会重启,服务器动态编译 jsp 使页面能够读取到最新信息。 当更改了 jsp 的类部分时,服务器同样不户重启,服务器仍旧可以动态编译 jsp . 不过, jsp 在更新之后,假设你浏览器输入了一个当前工程的一个错误目录而产生 404 错误,然后再重新定位到更改后的 jsp 页面(注意不要经过 servlert 跳转),它就会显示更新前的页面,而不会立即显示更新后的页面。如果你刷新一下,它就会显示更新后的页面了;如果你的 jsp 是通过 servlet 重定向(forward) 过来的,那么 你的页面会马上显示出来最新的更新,而不会需要页面刷新才能获取最新的页面。这是为什么?是服务器的原因还是客户端缓存的原因呢? 当产生404 错误之后,我清空了客户端的缓存,然后进行测试,果然能够得到结果?那会不会是我清空缓存的时候本身就耗费了很长时间,然后服务器已经重新编译了呢?也就说,我还要进行的测试就是不清空缓存,等待一定长的时间,然后回到正确的页面,看页面是否有正确的数据: 等了 n 长时间,在 url 中输入正确的路径后,还是得不到最新数据,由此可以看出这是客户端的错,而不是服务器的错。(开始是怀疑服务器的缓存,服务器的动态编译问题。) 类(.java ) 文件的修改在 reload ='false' 的时候,服务器不能进行重启也就不能读取类文件的更新。 即使你在某个类中添加了某个方法,但是没有重启服务器,你在 jsp 中调用这个类的方法,会报错! 比如 Student 类如下:(其中类的 stuSex 属性是在运行的时候添加上去的)