思路:如果想要超鏈接實現post方式提交,必須借助表單。下面得兩種方式,一種是借助顯示的form表單,一種是借助隱式的form表單
方式一:將超鏈接放到一個form表單中,或者超鏈接本身就在一個form表單中,這種情況下,我們將需要提交的參數用隱藏域的方式提交過去。
分兩種情況:
A.超鏈接的提交地址和form表單的提交地址是一致的:
<form name='form1' action='MyJsp2.jsp' method='post'>
<input type='hidden' name='page' value='1'/>
<input type='hidden' name='hiddenA' value='A'/>
<a href='javascript:document.form1.submit();'>首頁</font></a>
...
</form>
B. 超鏈接的提交地址和form表單的提交地址不一致的:
<script type="text/javascript" src="js/jquery-1.8.0.min.js"></script>
<script type="text/javascript">
function post(path){
$("#form1").attr("action",path);
$("#form1").submit();
}
</script>
<form name='form1' action='MyJsp2.jsp' method='post' id="form1">
<input type='hidden' name='page' value='1'/>
<input type='hidden' name='hiddenA' value='A'/>
<a href="javascript:post('index.jsp')">首頁</a>
...
</form>
在接收頁面,直接通過java方式獲取即可
String p = request.getParameter("page");
System.out.println(p); //1
方式二:使用js代碼實現隱藏form表單的實現
index.jsp頁面如下:
/**
* 功能:post方式提交
* 參數列表:url:提交的地址;params:參數列表
*/
<script type="text/javascript">
function post(url, params) {
var temp = document.createElement("form"); //創建form表單
temp.action = url;
temp.method = "post";
temp.style.display = "none";//表單樣式為隱藏
for (var item in params) {//初始化表單內部的控件
//根據實際情況創建不同的標簽元素
var opt =document.createElement("input"); //添加input標簽
opt.type="text"; //類型為text
opt.id = item; //設置id屬性
opt.name = item; //設置name屬性
opt.value = params[item]; //設置value屬性
temp.appendChild(opt);
}
document.body.appendChild(temp);
temp.submit();
return temp;
}
</script>
<body>
<a href="javascript:post('MyJsp.jsp',{id:1,name:'aaa'})">超鏈接實現post提交</a>
</body>
在MyJsp.jsp頁面,直接采用java方式接收即可:
System.out.println(request.getParameter("id")); //1
System.out.println(request.getParameter("name")); //aaa
