Servlet 拼接 HTML 痛苦:字串串接易錯、難維護、前後端協作困難。JSP 允許在 HTML 中嵌入 Java 代碼,顯示邏輯分離更自然。
work/Catalina/localhost/專案/xxx_jsp.java_jspService() 方法修改發布路徑直接指向 Tomcat webapps 目錄:
Servers 視圖 → 移除專案 → 右鍵 Open → 選 Use Tomcat installation
| 元素 | 語法 | 編譯位置 | 說明 |
|---|---|---|---|
| 宣告 | <%! 代碼 %> | 類成員區 | 方法、欄位、內部類 |
| 腳本片段 | <% 代碼 %> | _jspService() 內 | 任意 Java 語句 |
| 表達式 | <%= 變數/運算式 %> | out.print() | 輸出到頁面,無分號 |
| 註解 | <%-- 註解 --%> | 不編譯 | 客戶端不可見 |
| 指令 | <@page ... %> | 頁面屬性 | import、contentType、session 等 |
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@page import="java.util.Date"%>
<!DOCTYPE html>
<html>
<head><title>首頁</title></head>
<body>
<%! public void test(){ int a=0; } %>
<% for(int i=0;i<5;i++){ out.write(i+""); } %>
<%-- Date date=new Date(); out.write(date.toLocaleString()); --%>
你好,JSP
</body>
</html>
public final class index_jsp extends HttpJspBase {
public void test(){ int a=0; } // 宣告 → 類成員
public void _jspService(HttpServletRequest request, HttpServletResponse response) {
// ... 初始化 pageContext、out、session 等 ...
out.write("\r\n...\r\n");
for(int i=0;i<5;i++){ out.write(i+""); } // 腳本片段 → 方法內
out.write("\r\n你好,JSP\r\n");
}
}
request、response、session、application、config、out、pageContext、page、exception (錯誤頁面)
<@page session="false"%>