Skip to content

Tips: 此技术已过时,整理优先级低。排期整理中...

JSP 工作原理

JSP 的本质是一种 Servlet,运行时都是运行 .class 文件,但是与 Servlet 的部署方式(工作方式)不一样。

  • Servlet 是先由源代码编译为 .class 文件,然后部署到 servlet 容器(服务器)下,即先编译后部署。如果 Web 服务器已启动,则之前的 .class 文件已被 Servlet 容器加载,往后即使 .class 文件被修改了,也不会被 servlet 容器执行。
  • JSP 则是先部署后编译。是 web 服务器进行编译,而不是预先编译好后再加载。开发 Web 程序时经常需要修改 JSP。Tomcat 能够自动检测到 JSP 程序的改动。如果检测到 JSP 源代码发生了改动。Tomcat 会在下次客户端请求 JSP 时重新编译 JSP,而不需要重启 Tomcat。

JSP 会在客户端第一次请求 JSP 文件时被编译为 HttpJspPage 类(接口 Servlet 的一个子类)。该类会被服务器临时存放在服务器工作目录里面。由于 JSP 只会在客户端第一次请求的时候被编译,因此第一次请求 JSP 时响应会比较慢。如果把服务器保存的 class 文件删除,服务器也会重新编译 JSP。

I know where dry desert ends, green grass grows · MooN