首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

大家帮小弟我看下这段传递数据的代码错哪了

2012-01-16 
大家帮我看下这段传递数据的代码哪里错了。在线等我在书上见到的源代码:menu14.jsp%@ page contentTypet

大家帮我看下这段传递数据的代码哪里错了。在线等
我在书上见到的源代码:
menu14.jsp

<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
<title>用户登录</title>
</head>
<body>
<center>
<%
if(request.getParameter("username")!=null)
{
%>
<jsp:forward page="menu15.jsp">
<jsp:param name="username" value="<%=request.getParameter("username")%>"/>
<jsp:param name="telephone" value="<%=request.getParameter("telephone")%>"/>
<jsp:param name="address" value="<%=request.getParameter("address")%>"/>
<jsp:param name="username" value="<%=request.getParameter("name")%>"/>
</jsp:forward>
<%
}
else
{
%> <form action="" name="frm3" method="post">
  <table width="490" border="1">
  <tr>
  <td colspan="2"><div align="center">
  <strong>输入联系人信息</strong></div></td></tr>
  <tr>
  <td width="89">用户名:</td>
  <td width="385"><input name="username" type="text" id="name" size="15" /></td>
  </tr>
  <tr>
  <td>电话:</td>
  <td><div align="left">
  <input name="telephone" type="text" id="telephone" size="20" />
  </div></td>
  </tr>
  <tr>
  <td>家庭住址</td>
<td ><input name="address" type="text" id="address" size="50" /></td>
</tr>
<tr>
<td>邮政编码:</td>
<td><div align="left">
<input name="postcode" type="text" id="postcode" size="10" />
</div></td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input name="Reset" type="reset" id="Reset" value="重置" />
<input type="submit" name="Submit" value="提交" />
</div></td></tr></table>
</form>
<%}%></center></body>
</html>

menu15.jsp

<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head><title>用户登录</title>
</head>
<body>
<center>
<table width="490" border="1">
<tr>
<td colspan="2"><div align="center">
<strong>你输入的联系人信息如下</strong>
</div>
</td></tr>
<%request.setCharacterEncoding("gb2312");%>
<tr>
<td width="89">用户名:</td>
<td width="385"><%=request.getParameter("username")%></td>
</tr>
<tr><td>电话:</td>
<td>
<%=request.getParameter("telephone")%>
</td>
</tr>
<tr>
<td>家庭住址:</td>
<td><%=request.getParameter("address")%></td>
</tr>
<tr>
<td>邮政编码:</td><td>
<%=request.getParameter("postcode")%>
</td></tr>
</table></center></body></html>

运行menu14.jsp时提示:"/menu14.jsp(13,40) Attribute value request.getParameter("username") is quoted with " which must be escaped when used within the value"


我认为在menu14.jsp里参数不能传递到menu15.jsp中,地址,姓名填写出来才能传递吧。那个<jsp:forward>的作用不是只要符合条件,那么运行menu14.jsp时它将导向menu15.jsp显示其中的内容吗?

我直接把红色部分删除掉,然后改写“<form action="menu15.jsp" name="frm3" method="post">运行效果不是给书上运行后一样吗。我加不加红色部分有什么区别?

说的太杂,大家见笑了



[解决办法]
加红色部分是为了验证用户是不是已登陆的的。你第一次打开menu14.jsp,username肯定为null,那么这个页面就会显示表单等你添数据。 接着你填完数据提交,到menu15.jsp页面,显示你的数据。这个时候当你回到menu14.jsp时,uname!=null,所以直接跳转到menu15.jsp。你可以观察一些网站基本都有这个功能。

但是你的问题在于 登陆验证的时候一般设置的是session.setAttribute("uname")=.... 你的menu14.jsp是
request.getParameter("username")!=null 也就是说从前一页面到menu14.jsp的时候前一页面必须有个parameter("username")
[解决办法]
那段代码是判断从上个页面传过来的username是否为空,如果为空则直接传到menu15.jsp页面,如果不为空则重新让用户输入,再将其内容传到menu15.jsp 页面

热点排行