超链接实现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

时间: 2024-12-28 08:12:30

超链接实现post方式提交的相关文章

苹果微信浏览器不能post方式提交数据问题

form表单中采用post方式提交数据时,在苹果的微信浏览器中无法传递,安卓的可以 如图: 在controller中获取该数据为 null 将表单的提交方式修改为get就能够获取到 现在采用Ajax方式进行提交

JQuery以JSON方式提交数据到服务端

JQuery将Ajax数据请求进行了封装,从而使得该操作实现起来容易许多.以往我们要写很多的代码来实现该功能,现在只需要调用$.ajax()方法,并指明请求的方式.地址.数据类型,以及回调方法等.下面的代码演示了如何将客户端表单数据封装成JSON格式,然后通过JQuery的Ajax请求将数据发送到服务端,并最终将数据存储到数据库中.服务端定义为一个.ashx文件,事实上你可以将服务端定义为任何能接收并处理客户端数据的类型,如Web Service,ASP.NET Page,Handler等. 首

href以post方式提交打开

$("#newinfo").append('<li class="clearfix" ><a onclick="changeread(this);ShowReport_Click(this);"  data="' + item.msgId + '"  data1="'+messageUrl+'" class="notification-user">' + item

form表单提交转为ajax方式提交

在做项目的过程中遇到要将form表单提交转为ajax方式提交,下面是我总结的如何把form表单提交无缝转为ajax方式提交的方法. 原先的form表单长这样: <form action="xxx" method="get"> //action的值是请求的url地址 <div class="form-group"> <label for="name">姓名</label> <

Android 采用post方式提交数据到服务器

接着上篇<Android 采用get方式提交数据到服务器>,本文来实现采用post方式提交数据到服务器 首先对比一下get方式和post方式: 修改布局: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="m

使用httpclient框架分别用post,get方式提交

package com.example.httpclient; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.widget.EditText; import android.widget.Toast; import org.apache.http

springmvc,通过ajax方式提交页面数据,后台返回json数据中文信息乱码

本人刚开始接触springmvc,项目搭建参照https://my.oschina.net/gaussik/blog/385697.在用IDEA写登录注册的时候,想通过ajax方式提交数据到后台,然后遇到如题所述的乱码问题,然后度娘了好多,终于解决了.废话不多说,直接上代码. 首先是登录页面login.jsp 1 <%-- 2 Created by IntelliJ IDEA. 3 User: PENG027 4 Date: 2016/11/11 5 Time: 15:48 6 To chang

GET方式提交中文编码问题以及三种解决方式

GET方式提交在WEB中是非常常用的方式,有时候我们在使用GET方式提交请求不得不提交中文,但是TOMCAT等容器对于GET方式的编码问题总是让人折腾. 先说说流程吧: 我们的内容使用GET方式发送,就会在URL后面带上内容,在游览器发来的请求经过了游览器的URI编码,发送到服务器这边,如果是struts2会经过拦截器进行URI解码,并且使用"iso8859-1"进行编码,因为传输过程是二进制的. 这时候想解决中文编码问题有三种方式 假设: url:http://localhost:8

node.js 下依赖Express 实现post 4种方式提交参数

上面这个图好有意思啊,哈哈, v8威武啊.... 在2014年的最后一天和大家分享关于node.js 如何提交4种格式的post数据. 上上一篇说到了关于http协议里定义的4种常见数据的post方法 ,详细介绍请点击查看. 分别是这四种: www-form-urlencoded, form-data, application/json, text/xml Express 依赖 bodyParser 对请求的包体进行解析,默认支持:application/json, application/x-