首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

JSP 入門核心筆記:從 Servlet 痛點到 JSP 腳本元素與編譯原理

     編輯:Java 綜合教學

為什麼需要 JSP?

Servlet 拼接 HTML 痛苦:字串串接易錯、難維護、前後端協作困難。JSP 允許在 HTML 中嵌入 Java 代碼,顯示邏輯分離更自然。

JSP 執行原理

  • Tomcat 將 JSP 編譯為 Servlet:work/Catalina/localhost/專案/xxx_jsp.java
  • JSP 腳本片段放入 _jspService() 方法
  • 本質仍是 Servlet,只是編寫方式不同

Eclipse 部署技巧

修改發布路徑直接指向 Tomcat webapps 目錄:
Servers 視圖 → 移除專案 → 右鍵 Open → 選 Use Tomcat installation

核心語法元素

元素語法編譯位置說明
宣告<%! 代碼 %>類成員區方法、欄位、內部類
腳本片段<% 代碼 %>_jspService() 內任意 Java 語句
表達式<%= 變數/運算式 %>out.print()輸出到頁面,無分號
註解<%-- 註解 --%>不編譯客戶端不可見
指令<@page ... %>頁面屬性import、contentType、session 等

完整範例:index.jsp

<%@ 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>

編譯產出:index_jsp.java 關鍵片段

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");
    }
}

隱含物件 (9 大內建)

request、response、session、application、config、out、pageContext、page、exception (錯誤頁面)

最佳實踐建議

  • 業務邏輯移至 Servlet/Service,JSP 僅負責顯示
  • 善用 JSTL + EL 表達式,減少腳本片段
  • 關閉不需要的 session:<@page session="false"%>
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved