超链接实现post方式提交

思路:如果想要超链接实现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

上一篇:iOS HmacSHA1加密 和 MD5 Base64加密 --iOS开发系列---项目中成长的知识五


下一篇:CentOS7安装OpenStack(Rocky版)-09.安装Cinder存储服务组件(控制节点)