我做了一個form 裏面這樣寫的:
<form action="orderItem.action?orderIdz=1" method="get">
<table cellpadding="0" cellspacing="0" border="1px">
<tr>
<th width="200">orderId</th><th width="300">amount</th><th width="120">操作</th><th width="60"><a href="addOrder.action">添加</a></th>
</tr>
<s:iterator value="dataList">
<tr οnclick="orderItem('<s:property value="orderId"/>')">
<td><s:property value="orderId"/></td><td><s:property value="amount"/></td>
</tr>
</s:iterator>
</table>
<button type="submit">go</button>
</form>
然後我在後臺取orderIdz總是取不到,後來上網查了一下我在form中加上了method="post" ,在後臺獲取時用:
HttpServletRequest request= ServletActionContext.getRequest();
String roleId=request.getParameter("orderIdz");
就可以取到了。
查了一下原因:
表單提交中Get和Post方式的區別有5點
1.get是從服務器上獲取數據,post是向服務器傳送數據。
2.get是把參數數據隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個字段一一對應,在URL中可以看到。post是通過HTTPpost機制,將表單內各個字段與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。
3.對於get方式,服務器端用Request.QueryString獲取變量的值,對於post方式,服務器端用Request.Form獲取提交的數據。
4.get傳送的數據量較小,不能大於2KB。post傳送的數據量較大,一般被默認爲不受限制。但理論上,IIS4中最大量爲80KB,IIS5中爲100KB。
5.get安全性非常低,post安全性較高。