Loading...
 导航 所在位置:论坛首页 -> 计算机科学与技术 -> 程序设计 -> [求助]Jsp中表单数据传递问题
回复

[求助]Jsp中表单数据传递问题

作者:hll 时间:2010-11-22 10:46:50 收藏 编辑

我写了一个简单的注册页面和显示注册信息页面代码如下:

<%@ 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/>
密&nbsp&nbsp码:<input type="password" name="password"><br/>
家&nbsp&nbsp乡:<select name="s">
<option value="gansu">甘肃</option>
<option value="beijing">北京</option>
<option value="shanghai">上海</option>
<option value="shandong"> 山东</option>
</select><br/>
爱&nbsp&nbsp好:<input type="checkbox" name="ch1" value="reading"> 读书
<input type="checkbox" name="ch1" value="sports">运动<br/>
性&nbsp&nbsp别:<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,老师,这是什么原因导致的啊,如何解决这类问题?
 

第2楼 hll
编辑 删除 引用

<option value="gansu">甘肃</option>
<input type="radio" name="radio1" value="male">男

就是这,怎么样才能显示“甘肃”或者“男”呢,如果我把value的值改为中文,就传不过去了。

 

回复时间:2010-11-22 10:55:18
第3楼 hll
编辑 删除 引用

哈哈,真是太马虎了,问题已经解决啦,上面设置时把request对象写成response对象了。

回复时间:2010-11-22 11:33:19
第4楼 ade
编辑 删除 引用

呵呵.好.

回复时间:2010-11-22 13:13:59
第5楼 hll
编辑 删除 引用

如果要验证这些表单中的数据,除了用if.....else语句外,还可以用什么方法进行验证?

回复时间:2010-11-23 14:31:51
第6楼 ade
编辑 删除 引用

本质上来说,就是使用ifelse来判断是否合法的.

不过判断的位置可以调整.单以javaee来说,最好使用过滤器filter,在数据处理前先处理验证一下.并且验证的内容要全面一些.如null,""",敏感字符.甚至要求验证下传来的数据格式是否对(如email地址),这就要用到正则表达式.经过处理完都没有问题了,再给真正处理的程序.

回复时间:2010-11-23 17:03:57
第1页 共1页 共5个回复     <<    >>    
高级回复

操作选项:评分 加精 解精 奖惩 设专题 设公告 解公告 固顶 总固顶 解固顶 结帖 解结帖 锁帖 解锁 移帖 删帖
  首页
Copyright 2006-2012 HistoryCreator.com Powered By: BBSGood 5
吉ICP备06005902号