jsp在第一次被访问的时候会有.jsp→.java→.class这样的编译,形成了servlet。后面呢?第二次访问怎么进行的?是通过.jsp找对应的servlet,还是直接去访问的servlet?
只会.net,不会java,但是,好久好久没看见出现这样有意义的问题了,给题主加油。
首先servlet和jsp在被虚拟机执行时都是加载的class文件,不同的在于jsp在第一次处理时首先转化为servlet类,然后最终转化为class文件,因此第二次被访问时(没有修改jsp情况下),虚拟机会直接执行第一次编译好的class文件
那照这样,既然已经编译好了.class,我将.jsp删除掉后,再次执行时应该还继续执行编译好的class啊。但实际会报错
@梦再笑: 首先无论是jsp还是servlet本质上都是一个java类只不是是继承了特定抽象类的java类,举个例子,那你编写一个普通的java程序你把java源文件删了,那这个程序还能运行吗?因为你把jsp文件删除了,等于更改了源代码,编译器重新编译之后,上一次编译的类由于源文件没有,那也就不会生成对应的类,因此你在执行的时候会报错