-
JSP 编译:当客户端请求访问一个 JSP 页面时,Web 服务器首先检查是否已经编译过该 JSP 页面。如果没有编译过或者源文件已更改,服务器会将 JSP 文件编译成一个 Servlet 源文件。
-
Servlet 编译:编译后的 Servlet 源文件进一步被编译成 Java 字节码文件,这个过程由服务器的 JSP 引擎完成。编译后的 Servlet 类继承自 HttpServlet 类,并实现了 JspPage 接口,它包含了 JSP 页面的定义、脚本和表达式。
-
Servlet 实例化:每当有客户端请求访问该 JSP 页面时,服务器会实例化这个 Servlet 类,创建一个 Servlet 对象。
-
初始化和加载:Servlet 对象的初始化由容器(如 Tomcat)负责处理。在初始化阶段,Servlet 可以执行一些必要的操作,如加载数据库驱动程序、建立数据库连接等。
-
执行过程:当客户端请求访问 JSP 页面时,Servlet 对象会被调用。Servlet 会执行与 JSP 页面相关的 Java 代码,包括脚本和表达式。这些代码可以访问和处理请求的参数、会话数据和其他相关信息。
-
生成响应:Servlet 会生成动态内容作为响应,并将其发送回客户端。动态内容可以包含 HTML、CSS、JavaScript 和其他服务器端生成的数据。
-
销毁:在 Web 应用程序关闭或重新部署时,Servlet 对象会被销毁。在销毁阶段,Servlet 可以执行一些清理操作,如关闭数据库连接、释放资源等。
JSP 页面的代码混合了 HTML 和 Java 代码,使得开发人员能够更方便地生成动态内容。在 JSP 页面编译和执行过程中,服务器会将 HTML 静态内容保持不变,并在需要时执行嵌入的 Java 代码,从而生成动态内容
标签:Java,编译,JSP,服务器,原理,webapp,Servlet,页面 From: https://www.cnblogs.com/mamamia/p/17748486.html