JSP 页面里的POST问题,请高手指点一下,谢谢!
A是服务器,B是客户端。Bpost数据到A可以正常接收,A接收后经过处理后把处理结果自动post到B,问题就出在这里,B接收不到A传送的数据,这是什么原因,请高手指点指点...
A是服务器,B是客户端。B post数据到A可以正常接收,A接收后经过处理后把处理结果自动post到B ,问题就出在这里,B接收不到A传送的数据,这是什么原因,请高手指点指点,本人实现想不明白是什么地方有问题,谢谢了!
<%@ page contentType="text/html; charset=GBK" %>
<%
String EncryptMsg=(String)request.getAttribute("key");
String returnUrl=(String)request.getAttribute("url");
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>发送</title>
</head>
<body topmargin="0" leftmargin="0" scroll="no" rightmargin="0" bottommargin="0">
<form name="frmPost" method="post" action="<%=returnUrl%>">
<input type="hidden" name="EncryptMsg" value="<%=EncryptMsg%>">
</form>
<script language="javascript">
document.forms["frmPost"].submit();
</script>
</body>
</html>
这是A上POST的JSP,参数都是用request.setAttribute("url", url); request.setAttribute("key", key);传递这是没有问题的.B上用request.getParameter("url"); request.getParameter("key");来接收,什么地方有问题吗?
B是客户的服务器. 展开
<%@ page contentType="text/html; charset=GBK" %>
<%
String EncryptMsg=(String)request.getAttribute("key");
String returnUrl=(String)request.getAttribute("url");
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>发送</title>
</head>
<body topmargin="0" leftmargin="0" scroll="no" rightmargin="0" bottommargin="0">
<form name="frmPost" method="post" action="<%=returnUrl%>">
<input type="hidden" name="EncryptMsg" value="<%=EncryptMsg%>">
</form>
<script language="javascript">
document.forms["frmPost"].submit();
</script>
</body>
</html>
这是A上POST的JSP,参数都是用request.setAttribute("url", url); request.setAttribute("key", key);传递这是没有问题的.B上用request.getParameter("url"); request.getParameter("key");来接收,什么地方有问题吗?
B是客户的服务器. 展开
5个回答
展开全部
可能是B中出了问题:
B中用request.setAttribute("url", url); 这种形式传参那么对应着用<jsp:forward/>标签来转发请求,在目标页面(即A)用request.getParameter("url"); 来获得参数;
你可能用了request.sendRedirect(......);那么应该这样传递参数:request.sendRedirect("......?url=http://.....jsp&key=value");
不过这样就成了get方式了
所以建议用第一种
--------------------------------------------------------------
在B中这样写:
<jsp:forward page="a.jsp">
<jsp:param name="url" value="<%=url%>"/>
<jsp:param name="key" value="<%=key%>"/>
</jsp:forward>
B中用request.setAttribute("url", url); 这种形式传参那么对应着用<jsp:forward/>标签来转发请求,在目标页面(即A)用request.getParameter("url"); 来获得参数;
你可能用了request.sendRedirect(......);那么应该这样传递参数:request.sendRedirect("......?url=http://.....jsp&key=value");
不过这样就成了get方式了
所以建议用第一种
--------------------------------------------------------------
在B中这样写:
<jsp:forward page="a.jsp">
<jsp:param name="url" value="<%=url%>"/>
<jsp:param name="key" value="<%=key%>"/>
</jsp:forward>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没搞明白请求响应模型
A是服务器,处理完请求后一般都是返回一个大的文本串,也就是那个超文本,但是接收这个动作是谁呢?是你的浏览器,你根本不用什么A post数据到客户端,对于A来说只是被动的接收请求、处理请求,对于BS开发来说,客户端就是浏览器,就是你所谓的 B
A是服务器,处理完请求后一般都是返回一个大的文本串,也就是那个超文本,但是接收这个动作是谁呢?是你的浏览器,你根本不用什么A post数据到客户端,对于A来说只是被动的接收请求、处理请求,对于BS开发来说,客户端就是浏览器,就是你所谓的 B
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
A接收后经过处理后把处理结果自动post到B,这个在代码中是怎么实现的?B接收不到A传送的数据,这个接收的代码又是怎么写的呢?
<form name="frmPost" method="post" action="<%=returnUrl%>">
你检查下action的URL是否配置正确了,这里是否确定已经跳转到B中?可以用断点调试一下。
<form name="frmPost" method="post" action="<%=returnUrl%>">
你检查下action的URL是否配置正确了,这里是否确定已经跳转到B中?可以用断点调试一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是纯JSP—SERVLET的模式,请将处理后的数据用request.setParameter();设置好,然后再转发时,请不要用重新请求来处理.response.sendRedirect();
应该调用request.getRequestDispatcher("").forward()来重定向需要转发的页面,这样,在JSP页面里通过 request.getParameter(),就能接收到
另外一种方式,通过session来处理
应该调用request.getRequestDispatcher("").forward()来重定向需要转发的页面,这样,在JSP页面里通过 request.getParameter(),就能接收到
另外一种方式,通过session来处理
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
B接收服务器的参数不正确,他细去看一下你的代码?
你不把代码贴出来,怎么分析呀
你不把代码贴出来,怎么分析呀
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询