1. 程式人生 > >form action中傳遞引數的問題

form action中傳遞引數的問題

我做了一個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 onclick="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安全性較高。