- JSP(JavaServer Pages) 是“HTML 里写 Java”的模板技术,最终会被容器转换成 Servlet。
- Servlet 是“Java 里写 HTML”的 Java 类,直接继承 javax.servlet.http.HttpServlet,用来接收/响应 HTTP 请求。
- Servlet 是什么
- 纯 Java 类,运行在 Servlet 容器(Tomcat、Jetty 等)中。
- 生命周期:
init → service → destroy
,其中service()
根据 HTTP 方法调用doGet/doPost/doPut…
。 - 职责:读取请求、调用业务逻辑、生成响应(通常是 HTML,但也可以是 JSON、图片等)。
- JSP 是什么
- 文件扩展名
.jsp
,里面可以写 HTML/CSS/JS,也可以嵌入<% Java 代码 %>
。 - 第一次访问或修改后,JSP 引擎把它“翻译”成一个
.java
Servlet 源文件(如index_jsp.java
),再编译成.class
并加载到容器。 - 之后的行为就和普通 Servlet 完全一样——本质上 JSP 只是“带语法糖”的 Servlet。
-
二者关系与分工
-
演变与现状
- 早期:JSP 里大量脚本,业务逻辑、视图混杂(JSP Model 1)。
- 后来:JSP 只做视图,Servlet/Filter 做控制器,JavaBean 做模型(JSP Model 2,即早期 MVC)。
- 现代:Spring MVC、Spring Boot 等框架已把控制器进一步封装成
@Controller/@RestController
,JSP 也常被 Freemarker、Thymeleaf、Vue/React 等替代,但核心思想不变——JSP 最终仍是 Servlet。