黑马程序员技术交流社区

标题: 为什么我在myeclipse中已修改jsp文件就要重启服务器啊? [打印本页]

作者: 葛伟    时间: 2013-3-22 18:43
标题: 为什么我在myeclipse中已修改jsp文件就要重启服务器啊?
本帖最后由 葛伟 于 2013-3-24 08:32 编辑

为什么我在myeclipse中已修改jsp文件就要重启服务器啊?做一次测试,要重启一次,全浪费在tomcat上了,上面是修改jsp后提示的错误;求帮助啊
作者: 杨杨    时间: 2013-3-22 19:03
理论上上不重启吧
作者: 葛伟    时间: 2013-3-22 19:19
杨杨 发表于 2013-3-22 19:03
理论上上不重启吧

但是真的一修改就重启,郁闷死了
作者: 夏振博    时间: 2013-3-22 20:38
如果修改JSP的话,需要重新向服务器发布,服务器可以不用重启啊, 反正我在代码没有出问题的情况下就是这样做的 没出问题
作者: 胡国彬    时间: 2013-3-22 21:32
修改jsp文件不会重启服务器,这里服务器重启并不是因为你修改jsp文件.问题不在这里,问题出在SetCodeFilter的24行处或者是配置的问题.详细的代码我看不到,但是可以断定,肯定不是因为修改jsp才导致的myeclipse重启,是因为SetCodeFilter的代码处的问题,从一开始就编译不通过.
作者: 葛伟    时间: 2013-3-22 21:48
胡国彬 发表于 2013-3-22 21:32
修改jsp文件不会重启服务器,这里服务器重启并不是因为你修改jsp文件.问题不在这里,问题出在SetCodeFilter的 ...

真不是SetCodeFilter的问题,重启tomcat一切正常~只要一修改JSP就需要重启,快无奈了
作者: 董霁辉    时间: 2013-3-23 21:59
解释下JSP引擎的工作原理,印象不太深了大致为:
当一个JSP页面第一次被访问的时候,JSP引擎将执行以下步骤:
(1)将JSP页面翻译成一个Servlet,这个Servlet是一个java文件,同时也是一个完整的java程序
(2)JSP引擎调用java编译器对这个Servlet进行编译,得到可执行文件class
(3)JSP引擎调用java虚拟机来解释执行class文件,生成向客户端发送的应答,然后发送给客户端
以上三个步骤仅仅在JSP页面第一次被访问时才会执行,以后的访问速度会因为class文件已经生成而大大提高。当JSP引擎街道一个客户端的访问请求时,首先判断请求的JSP页面是否比对应的Servlet新,如果新,对应的JSP需要重新编译。
而你在修改了jsp源文件时,可能是因为jsp引擎认为你已经访问过了该页面,所有就直接调用了原来的.class文件,没有重新编译.接着就报错了.
在%tomcat%\work\Catalina\localhost下的所有文件及文件夹删除后,都会随着tomcat启动而重建.而这里就有要运行的class文件,你在这里找到你要用.class文件,然后再删除,再运行你的jsp页面,试试.
希望对你有用.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2