日期:2014-05-18  浏览次数:20582 次

JSP通过forward和param向servlet传递数据的时候,为何在servlet端是通过getParameter获取数据?
JSP在运行的时候,服务器会根据其数据生成一个对应的servlet。
所以,私两者之间的信息,应该类似于两个servlet之间进行数据传递。

而在servlet之间进行数据传输,不是都是通过attribute进行set和get么?
getParameter一般是获取客服端传过来的参数信息.,而get(set)Attribute则是servlet之间的数据传输。

这个JSP,是怎么把自己的信息传递进parameter的呢。

这是我写的传送数据的代码:
	<jsp:forward page="/ServletDemo1">

<jsp:param name ="username" value ="DZR"></jsp:param>

</jsp:forward>



在其生成的servlet里,对应的代码如下:
 if (true) {
        _jspx_page_context.forward("/ServletDemo1" + (("/ServletDemo1").indexOf('?')>0? '&': '?') + org.apache.jasper.runtime.JspRuntimeLibrary.URLEncode("username", request.getCharacterEncoding())+ "=" + org.apache.jasper.runtime.JspRuntimeLibrary.URLEncode("DZR", request.getCharacterEncoding()));
        return;
      }

!!!!

------解决方案--------------------
你要弄明白它把值set到什么地方去了。
------解决方案--------------------
getParameter取得的是Http协议中通过请求带来的参数
getAttribute取得的是你自己放置在request域的属性