form action中傳遞引數的問題
阿新 • • 發佈:2019-01-09
我做了一個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安全性較高。