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

JSP 基本語法與簡單表單處理完整教學

     編輯:關於JSP

JSP 指令元素

指令屬性說明
pagelanguage使用語言,僅支援 "java"
contentTypeMIME 類型,如 "text/html;charset=UTF-8"
import匯入 Java 套件,如 "java.sql.*"
includefile導入其他檔案內容 (編譯期合併)
taglibprefix, uri引用自訂標籤庫

JSP 標準動作元素

元素功能
jsp:forward轉向其他頁面
jsp:include動態包含其他檔案
jsp:plugin插入 Applet 小程式
jsp:param參數傳值 (配合 forward/include/plugin)
jsp:useBean建立 JavaBean 實例
jsp:setProperty設定 Bean 屬性
jsp:getProperty取得 Bean 屬性

JSP 內建物件

物件常用方法
requestgetParameter() 取表單值、getRemoteAddr() 取客戶端 IP
responsesendRedirect() 重導向、setContentType() 設 MIME
out向網頁輸出內容
applicationsetAttribute()/getAttribute()/removeAttribute() 全域屬性
sessionsetAttribute()/getAttribute()/removeAttribute()/getId() 會話屬性

完整表單處理範例

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html><head><title>表單處理範例</title></head>
<body>
  <form name="frm" method="POST" action="process.jsp">
    <table border="0">
      <tr><td>使用者名稱:</td><td><input type="text" name="username" /></td></tr>
      <tr><td>密碼:</td><td><input type="password" name="password" /></td></tr>
      <tr><td>性別:</td><td>
        <input type="radio" name="gender" value="男" checked />男
        <input type="radio" name="gender" value="女" />女
      </td></tr>
      <tr><td>興趣:</td><td>
        <input type="checkbox" name="hobby" value="運動" />運動
        <input type="checkbox" name="hobby" value="美術" />美術
        <input type="checkbox" name="hobby" value="音樂" />音樂
      </td></tr>
      <tr><td>專業:</td><td>
        <select name="major">
          <option value="資工">資訊工程</option>
          <option value="文學">文學</option>
          <option value="數學">數學</option>
        </select>
      </td></tr>
      <tr><td>備註:</td><td><textarea name="remark" rows="5" cols="30"></textarea></td></tr>
      <tr><td><input type="submit" value="送出" /></td></tr>
    </table>
  </form>
  
  <%
    // 處理表單提交 (實際應在 process.jsp)
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    String gender = request.getParameter("gender");
    String[] hobbies = request.getParameterValues("hobby");
    String major = request.getParameter("major");
    String remark = request.getParameter("remark");
    
    // 現代專案建議使用 UTF-8 統一編碼,無需手動 ISO-8859-1 轉碼
    out.println("您的資料:<br/>");
    out.println("姓名:" + username + "<br/>");
    out.println("性別:" + gender + "<br/>");
    out.println("興趣:" + (hobbies != null ? String.join(",", hobbies) : "無") + "<br/>");
    out.println("專業:" + major + "<br/>");
    out.println("備註:" + remark + "<br/>");
  %>
</body></html>

關鍵處理細節

  • request.getParameterValues("hobby") 取得陣列處理多選框
  • 單選按鈕同 name 只取一值
  • 下拉選單 select 取單一值
  • 現代專案:統一 UTF-8 編碼 (頁面、伺服器、資料庫),避免手動 getBytes("ISO-8859-1") 轉碼
  • 生產環境:表單提交至獨立處理頁面 (Controller/Servlet),非同頁處理

現代化改進建議

  • 使用 JSTL <c:out> 替代 out.println(),自動防 XSS
  • 採用 EL 運算式 ${param.username} 簡化參數取得
  • Controller 層處理驗證與業務邏輯,JSP 僅負責渲染
  • 使用 Bean Validation (JSR-303) 註解驗證表單資料
  • 前端框架 (Vue/React) 接管表單狀態,JSP 轉為模板引擎或純 API
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved