幾點小結:
(1)使用form表單提交資料,提交後的資料將會在另一個jsp頁面進行處理。也可以實現不跳轉,同時使用ajax進行局部更新,這裡暫不進行說明。
(2)提交表單前需要進行資料驗證時,響應在form中onsubmit事件,資料合法則返回true,然後實現頁面跳轉;資料不合要求則返回false,頁面便不會跳轉。
(3)要考慮中文參數的傳遞。由於瀏覽器,web伺服器,資料庫等的預設編碼不一致,很容易出現中文亂碼(參考:解決jsp中文亂碼,修改mysql編碼)。
以下是一個簡單的表單提交與表單驗證的例子。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ page import="java.util.*" %><%@ page import="java.sql.*" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>表單提交</title></head><body><p align="center"><b>表單提交</b><br></p><center><div align="left"><table height="60" border="0" align="left"><tr><td><form name="channelform" action="addChannel.jsp" onsubmit="return validate_channel_info(this);" method="post">名字: <input type="text" name="channelname" /><br />ID: <input type="text" name="channelid" /><br /><input type="submit" value="提交"></form></td></tr></table><script type="text/javascript">function validate_channel_info(channelform){if(channelform.channelname.value==""){alert("請輸入正確的名字");return false;}else if(!isNumber(channelform.channelid.value)){alert("請輸入合法ID");return false;}return true;} function isNumber(str) // 判斷是否為非負整數{var rx = /^[0-9]+$/;return rx.test(str);}</script></div></center></body></html>