![]() |
|
所在位置:论坛首页 -> 计算机科学与技术 -> 程序设计 -> [求助]Jsp中表单数据传递问题 |
![]() |
我写了一个简单的注册页面和显示注册信息页面代码如下:
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<!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=gb2312">
<title>登录</title>
</head>
<body>
用户注册<br>
<form action="register.jsp" name=form1 method=post>
用户名:<input type="text" name="username" ><br/>
密  码:<input type="password" name="password"><br/>
家  乡:<select name="s">
<option value="gansu">甘肃</option>
<option value="beijing">北京</option>
<option value="shanghai">上海</option>
<option value="shandong"> 山东</option>
</select><br/>
爱  好:<input type="checkbox" name="ch1" value="reading"> 读书
<input type="checkbox" name="ch1" value="sports">运动<br/>
性  别:<input type="radio" name="radio1" value="male">男
<input type="radio" name="radio1" value="female">女<br/>
<input type="submit" value=" 提交">
</form>
</body>
</html>
显示页面代码:
<%@ page language="java" contentType="text/html; charset=gbk"
pageEncoding="gbk"%>
<!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=gbk">
<title>注册信息</title>
</head>
<body>
你的注册信息如下:
<br />
<%
response.setCharacterEncoding("gbk");
String name = request.getParameter("username");
String sex = request.getParameter("radio1");
String hometown = request.getParameter("s");
String[] enjoy = request.getParameterValues("ch1");
%>
姓名:<%=name%><br />
性别:<%=sex%><br />
爱好:<%
if (enjoy != null) {
for (int i = 0; i < enjoy.length; i++)
out.print(enjoy[i]);
}
%><br />
家乡:<%=hometown%><br />
</body>
</html>
出现的问题是:在传递家乡和性别这两栏时遇到了问题,我在显示页面中已设置返回页面编码格式为“gbk”,若注册页面<option value="beijing">北京</option>将value="北京"的话,得到的结果为????,而性别中如果不写value值的话,总是为null,老师,这是什么原因导致的啊,如何解决这类问题?
<option value="gansu">甘肃</option>
<input type="radio" name="radio1" value="male">男
就是这,怎么样才能显示“甘肃”或者“男”呢,如果我把value的值改为中文,就传不过去了。
哈哈,真是太马虎了,问题已经解决啦,上面设置时把request对象写成response对象了。
呵呵.好.
如果要验证这些表单中的数据,除了用if.....else语句外,还可以用什么方法进行验证?
本质上来说,就是使用ifelse来判断是否合法的.
不过判断的位置可以调整.单以javaee来说,最好使用过滤器filter,在数据处理前先处理验证一下.并且验证的内容要全面一些.如null,""",敏感字符.甚至要求验证下传来的数据格式是否对(如email地址),这就要用到正则表达式.经过处理完都没有问题了,再给真正处理的程序.
| 操作选项: 评分 加精 解精 奖惩 设专题 设公告 解公告 固顶 总固顶 解固顶 结帖 解结帖 锁帖 解锁 移帖 删帖 |
|
||||||