转自:https://www.cnblogs.com/qusongsong/p/5759605.html
如果想要超链接实现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