几点小结:
(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"
οnsubmit="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>