解释下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页面,试试.
希望对你有用. |