`
dingherry
  • 浏览: 67222 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

前后台交互的传参方式与大参数传递

    博客分类:
  • JS
 
阅读更多

前台向后台传参,一般有如下几种方式:
1)URL方式传参
这种方式传参时,首个参数置于url的后面,用“?”连接;形式:url?param=value
如:http://zhidao.baidu.com/q?word=%D6%BD%B1%D2+%CB%BA%BB%D9
多个参数时,参数间用“&”连接,
例如:http://zhidao.baidu.com/q?word=%D6%BD%B1%D2+%CB%BA%BB%D9&lm=0&fr=search&ct=17&pn=0&tn=ikaslist&rn=10

URL传参很方便,但是在应用时,有2个缺陷:
1)单个参数的value不能超过1920000个字节。本文这里暂时定义为大参数。
2)传递bean时很麻烦。
有种劣质方法可以办到,就是将bean的属性均需作为一个参数连接到url里传递。
比如要传递一个人这个类(有身高和性别)到后台,
前台:var pepole = {age:22,sex:'male'}
要是直接把pepole拼接到url里:url?pepole=pepole,后台在不设置struts参数解析拦截器时,以string接收将会是一个object Object。

假如后台action里声明的是这个bean类型属性,可以实现的方式是:url?pepole.age=22&pepole.sex=male
要注意的是:URL里点后面的age和sex最好跟pepole的age和sex大小写相同!
这样后台就直接接收到了一个bean。

想想看,如果bean属性很多,这让前台的兄弟情何以堪?
所以,这种方法适合bean属性少的情况,且不追求优雅的代码规范下写写。

2)jQery或Ajax方式传递
先说Ajax方式,这种方式手册上用法多的是,这里只讲讲大字串参数时,例如
Ext.Ajax.request( {
url : path+'/abc/abcAction!pramaTest.action',
success: function(response) {//这里要处理pramaTest的返回service
},
failure: function(response) {
},
params: {
    data : this.veryLongJsonStr,
    data2 : Ext.encode(this.veryLongJsonStr)
}

});
this.veryLongJsonStr是个长度超过1920000字节的JSON字符串。
可有清楚一点是:Ajax可有传递大数值参数

再说jQery方式,比如API上的一个例子:
$.post(url,
       { name: "John", time: "2pm" },
       function(data){
          alert("Data Loaded: " + data);
       }
);
jquery方式也是可以处理传递大数值参数的。


3)form的post方式
var frm = document.getElementById("xxform");
frm.action=path+'/abc/abcAction!pramaTest.action';
frm.submit();

xxform里预置一个hidden的标签,在submit之前可以把veryLongJsonStr赋值给这个隐藏的控件。这样,form的post方式也是可以传递大参数的。不过,可能会存在安全问题。

一般,我们处理这样的前后台交互,还是使用Ajax、jquery这样的成熟的框架来做这些细微的事情,比较妥当。
分享到:
评论

相关推荐

    asp.net前台调用后台方法传参数

    以上示例展示了如何在ASP.NET Web Forms项目中从前端调用后台方法并传递参数。需要注意的是,在实际开发中,这种方式并不推荐用于复杂的业务逻辑处理,因为这可能会导致安全性和可维护性方面的问题。对于更复杂的...

    springmvc3+json参数传递后台接收json参数

    "springmvc3+json参数传递后台接收json参数"这个主题涉及到的是如何使用Spring MVC 3版本接收前端通过JSON格式发送的数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易于人阅读和编写,...

    jsp中利用jquery+ajax在前后台之间传递json格式参数

    在本文中,我们将深入探讨如何在JavaServer Pages (JSP) 中使用jQuery和Ajax来传递JSON格式的参数。...通过这些步骤,开发者可以有效地在JSP中实现前后台之间的JSON数据交互,提高Web应用的用户体验。

    前后台传值乱码问题万能思想,通用

    通过以上方法,可以有效地预防和解决大部分的前后台传值乱码问题。但需要注意,每个项目可能有其特定的环境和需求,因此在实际应用中,需要根据具体情况进行调整和优化。 最后,当遇到乱码问题时,调试和日志记录是...

    json的基本传值方式(从前台到后台,再从后台到前台)

    它是基于JavaScript的一个子集,但并非JavaScript的专属,它被广泛应用于各种编程语言中,包括前端与后端之间的数据交互。本文将详细介绍JSON在从前台(前端)到后台(后端),以及从后台返回到前台的基本传值方式。...

    JS AJAX前台如何给后台类的函数传递参数

    在讨论JavaScript的AJAX技术如何与后台服务器端类的方法进行交互时,主要是利用HTTP请求来实现前台与后台的数据交换。这个过程涉及到了几个关键的技术点,包括如何设置Web服务的方法以便它们能被客户端调用、如何...

    HttpClient基本功能使用(结合Struts2传参)

    HttpClient可以帮助我们在后台模拟用户请求,与Struts2 Action进行交互,以便测试或实现服务间通信。 在使用HttpClient时,我们需要创建一个`CloseableHttpClient`实例,然后使用`HttpPost`或`HttpGet`对象来构建...

    ajax json示例

    **描述分析:** 描述中的“在vs2010下的一个完整的通过ajax 在前后台传参json的格式”表明这是一个在Visual Studio 2010环境下开发的项目,它演示了如何使用AJAX技术将JSON格式的数据作为参数从客户端(前端)传递到...

    SmartClient资料

    14. **smartclient 传参**:SmartClient可以通过URL参数、隐藏字段或Ajax请求将数据传递给服务器,支持复杂的参数结构和序列化。 15. **动态获取后台执行状态**:SmartClient可以实时监控服务器端任务的执行状态,...

    Layui数据表格 前后端json数据接收的方法

    先上效果图: 前端数据表格: <%-- 数据表格 --%> lay-filter=test> <thead>

    WPF经典编程实例-课程大纲.docx

    WPF应用接收启动参数有两种方式:通过命令行参数(cmd 传参)或使用其他方法(如配置文件或注册表)传递。 【异常处理】 WPF应用程序中未处理的异常可以通过两种方式捕获:一是窗口级别,二是应用程序级别,确保...

    layui文件上传控件带更改后数据传值的方法

    注意,后台接收的`param`参数应与前端设置的一致。 总的来说,layui的文件上传控件允许我们在上传文件时携带额外的数据,只需在`before`事件中进行处理并转换为JSON格式,然后在后台接收到这个数据后进行解析即可。...

    springboot+mybatis工作中出现的问题汇总和学习新知识的总结.docx

    1. **前端Ajax传参**:前端通过Ajax进行数据传递,这涉及到jQuery或其他前端框架如Vue或React等的Ajax方法。在示例中,使用了类似jQuery的API来发送POST请求,将数据封装在JSON对象中,如`data: {"nonQuantify":"",...

    解决Vue axios post请求,后台获取不到数据的问题方法

    在开发Vue.js应用时,与后端交互是一个常见的任务,而使用axios库进行HTTP请求是很多开发者的选择。然而,有时可能会遇到一些问题,比如在发送POST请求时,后端无法正确获取到数据。本文将详细讲解如何解决Vue axios...

    JS解决url传值出现中文乱码的另类办法

    在开发Web应用时,数据交互是必不可少的一部分,尤其是在前端与后端之间。有时我们需要通过URL传递包含中文的数据,但是这通常会遇到一个棘手的问题,即中文字符在URL中可能会出现乱码。这是因为HTTP协议中默认的...

    单页面和多页面开发及应用

    -数据传递:单页面容易,多页面需要依赖url传参,或cookie,localSrorage等 -搜索引擎优化:单页面需要单独方案,实现较为困难,不利于SEO搜索,可利用与SSR优化,多页面实现方法容易 -适用范围:单页面高要求的...

    Python threading的使用方法解析

    在这个例子中,`loop1`和`loop2`是我们的线程函数,`args`参数是一个元组,用于传递参数给线程函数。`start`方法启动线程,而`join`方法确保主程序会等待所有线程执行完毕后再继续执行。 在多线程编程中,有时我们...

Global site tag (gtag.js) - Google Analytics