- jsp 文件如何转换成 java 文件
- jsp 何时开始编译
- jsp 编译后的文件存储目录
html ----> service(),使用 out.write()输出。 java代码片段 ----> service(),照搬。 jsp表达式 ----> service(),使用 out.print()输出。 jsp指令 ----> 会影响源代码的生成,比如导包。 jsp声明 ----> jsp 声明中定义的变量会变为对应的 servlet 类的属性,定义的方法会变成对应的 servlet 类的一个方法。
jsp变成servlet类,容器自动创建一个实例,执行servlet实例的service方法,该方法有out.print()和out.write()等输出方法,service执行完后其实就是写一个html文件,并将该html文件存放在response对象中,服务器再将html文件拿出打成数据包传输给浏览器。最后浏览器加载、解析这页面,最后我们用户就可以看到网页了。 但是这个页面中的html、css、js等代码都是在浏览器端执行的,不会在服务器端执行。
jsp 何时开始编译客户端访问某个 jsp 文件时,容器才将 jsp 文件编译成 java 文件和 class 文件,这两份文件均会存储在容器的 work 目录下。 例如:index.jsp,编译后会得到 index_jsp.java 和 index_jsp.class 文件
jsp 编译后的文件存储目录通常存放在如下目录中:
Tomcat的安装目录/work/Catalina/localhost/${项目的虚拟目录}/org/apache/jsp
IntelliJ IDEA for Mac 则存放在如下目录中:
/Users/liaowenxiong/Library/Caches/JetBrains/IntelliJIdea2020.3/tomcat/35b49458-3af6-4df9-9058-37594031a8f0/work/Catalina/localhost/cs/org/apache/jsp