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

JSP 极速入門指南:從環境建置到語法核心與 JavaBean 整合

     編輯:關於JSP

一、JSP 簡介與適用場景

JavaServer Pages (JSP) 是基於 Java 的跨平台 Web 開發技術,語法類 HTML,邏輯用 Java 片段。優勢:

  • 免費開源(Sun/Oracle 提供參考實作 Tomcat)
  • 跨平台:Windows/Linux/Solaris 皆可運行
  • 非 Microsoft 技術棧首選(Apache/Netscape/iPlanet 等無原生 ASP 支援時)
  • 自動編譯為 Servlet,效能遠超 CGI/Perl

注意:JSP ≠ 伺服端 JavaScript (LiveWire 等舊技術)。

二、開發環境快速建置

2.1 核心組件

  1. JDK (Java SE Development Kit):含 javac 編譯器。設定 JAVA_HOME 指向安裝目錄,PATH 加入 %JAVA_HOME%\bin。
  2. Servlet 容器:推薦 Apache Tomcat(產級、免費、輕量)。或 JSWDK (Sun 早期參考實作,已停止維護)。

2.2 安裝驗證

  1. 啟動 Tomcat (bin/startup.sh|bat),預設埠 8080。
  2. 瀏覽 https://localhost:8080/examples/jsp/ 執行內建範例。
  3. 若報錯多為 JAVA_HOME 未設或設錯,用 set (Windows) / env (Linux) 檢查。

三、第一個 JSP 頁面

<html>
<head><title>First JSP</title></head>
<body>
<h3>Today is: <%= new java.util.Date() %></h3>
</body>
</html>

存為 sample.jsp 放入 Web 應用根目錄(Tomcat 預設 webapps/ROOT/),瀏覽 https://localhost:8080/sample.jsp。首次訪問會觸發編譯,隨後顯示當前時間。

四、JSP 語法五大核心元素

元素語法用途範例
指令 <%@ directive %> 指示容器如何處理頁面(匯入、錯誤頁、Session 等) <%@ page import="java.util.Date" %>
<%@ page errorPage="err.jsp" %>
<%@ include file="footer.jsp" %>
宣告 <%! declaration %> 定義類層級變數、方法(對應 Servlet 成員) <%! int counter = 0; %>
<%! void inc() { counter++; } %>
表達式 <%= expression %> 計算結果直接輸出至響應(無分號) <%= "Hello" %>
<%= counter %>
腳本片段 <% code fragment %> 任意 Java 陳述式,可夾雜 HTML <% for(int i=1;i<=4;i++) { %>
<h<%=i%>>Hello</h<%=i%>>
<% } %>
註解 <%-- comment --%> 伺服器端註解,**不輸出至客戶端** <%-- 這行不會出現在 HTML 原始碼 --%>

五、JSP 與 JavaBean 整合

JavaBean 是可重用元件,具備屬性存取器。JSP 提供標籤簡化操作:

5.1 宣告與作用域

<jsp:useBean id="user" class="com.example.User" scope="session" />
  • id:頁面內引用名稱
  • class:完整類名
  • scope:page(預設) / request / session / application。容器依作用域管理實例生命週期,首次使用才實例化。

5.2 讀取屬性

<jsp:getProperty name="user" property="name" />

5.3 設定屬性

<!-- 自動對應同名請求參數 -->
<jsp:setProperty name="user" property="*" />

<!-- 指定參數名 -->
<jsp:setProperty name="user" property="email" param="emailAddr" />

<!-- 直接指定值 -->
<jsp:setProperty name="user" property="role" value="admin" />
<jsp:setProperty name="user" property="score" value="<%= 100 %>" />

5.4 類別檔案部署位置

Tomcat: WEB-INF/classes/ (類別檔) 或 WEB-INF/lib/ (JAR)。JSWDK: 安裝目錄下的 classes/。

六、JSP 九大內建物件

物件類型用途
requestHttpServletRequest客戶端請求參數、Header、屬性
responseHttpServletResponse控制響應:Header、Cookie、重定向
sessionHttpSession用戶會話狀態(購物車、登入態)
applicationServletContext全應用共享資源(配置、快取、計數器)
outJspWriter輸出流,out.println() 等同表達式
configServletConfigServlet 初始化參數
pageContextPageContext頁面層級屬性管理、轉發、包含
pageObject當前 Servlet 實例 (this)
exceptionThrowable錯誤頁面 (isErrorPage="true") 可用

常用範例

<% out.println("Direct write via out"); %>
<% String name = request.getParameter("name"); %>
<% session.setAttribute("loginUser", userObj); %>

七、進階建議

  1. 業務邏輯下沉:JSP 僅含視圖邏輯,複雜運算、資料庫操作移至 JavaBean/Service/EJB。
  2. 使用 JSTL/EL:現代開發以 <c:forEach>、${user.name} 取代腳本片段,更安全、可維護。
  3. 類別路徑設定:編譯自訂類別時,將容器 lib/servlet-api.jar 加入 CLASSPATH,並複製至 JRE lib/ext/ 或使用 -cp 參數。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved