- 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。