使用Struts2写的接口实现接收json格式的数据

Struts2与JQuery结合JSON实现Ajax异步加载 本文还有配套的精品资源,点击获取 简介:Struts2JQueryJson是一种将Struts2框架与jQuery库结合使用,通过JSON格式进行Ajax异步加载的技术方案。它提升Web应用的用户体验,通过无刷新页面更新来增强交互性和响应速度。本方案中,Struts2框架处理业务逻辑,jQuery库负责发起Ajax请求并更新页面元素,而JSON作为一种轻量级的数据交换格式,... 阅读详情

先说下需求:写一个接口,接收数据格式是json。

如果使用springMVC实现,非常简单,方法中使用@RequestBody接收参数 即可,如下:

	@ResponseBody
	@RequestMapping(value = "/create" , method = RequestMethod.POST)
	public XXX xxx(@RequestBody String json) {
		xxxxxx
	}
如果对springMVC实现比较感兴趣,自己去百度,网上一堆资料。

下面我介绍下使用struts2实现,这方面我找了很多资料,网上资料很杂,自己总结后并且实现了功能。

其实一开始自己的没弄明白原理,找的资料都是如何从页面传递json到后台,这并不是我想要的。

我们开发接口是供别人调用的,别人在他们项目中直接访问你的接口url并通过post请求传递json数据。我们接口中是要接收json数据并进行解析,可是json是一个整体,如何接收,没有key..使用谷歌的模拟post请求工具插件Advanced RestClient调试后发现,json数据其实是在post请求体中,类似于form表单,只不过json的httppost.setHeader("Content-Type","application/json"),而form表单为httppost.setHeader("Content-Type","application/x-www-form-urlencoded");所以可以获取post请求体中的内容再进行解析。代码如下:

	//获取请求体中的数据
	public String getStrResponse(){
		ActionContext ctx = ActionContext.getContext();
		HttpServletRequest request = (HttpServletRequest)ctx.get(ServletActionContext.HTTP_REQUEST);   
		InputStream inputStream;
		String strResponse = "";
		try {
		inputStream = request.getInputStream();
		String strMessage = "";
		BufferedReader reader;
		reader = new BufferedReader(new InputStreamReader(inputStream,"utf-8"));
		while ((strMessage = reader.readLine()) != null) {
		strResponse += strMessage;
		}
		reader.close();
		inputStream.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return strResponse;
	}

	/*XXXX任务接口*/
	public String XXXTask(){
		 //获取请求体中内容,转换为json
		JSONObject jsonRequest = JSONObject.fromObject(this.getStrResponse());
		//获取json中参数
		String accountId1=jsonRequest.getString("account_id");
		Long accountId=Long.parseLong(accountId1);
		String verifyContent=jsonRequest.getString("verify_content");
		String verifyType=jsonRequest.getString("verify_type");
		log.info("获得请求参数[account_id:"+accountId+",verify_content:"+verifyContent+",verify_type:"+verifyType+"]");
		if("N".equalsIgnoreCase(verifyType)){
			verifyType = "1";
		}else if("A".equalsIgnoreCase(verifyType)){
			verifyType = "2";
		}else if("P".equalsIgnoreCase(verifyType)){
			verifyType = "3";
		}
		//下面为具体业务处理
		xxxxxxxxx
		
		try {
			xxxxxxxxxxxx
			resMap.put(Fields.ERROR_NO_KEY, 0);
			resMap.put(Fields.ERROR_INFO_KEY, "提交xxxx审核成功");
			log.info("提交xxxx审核成功");
		} catch (Exception e) {
			e.printStackTrace();
			resMap.put(Fields.ERROR_NO_KEY, -1);
			resMap.put(Fields.ERROR_INFO_KEY, "提交xxxx审核失败");
			log.error("提交xxxx审核失败");
		}
		return SUCCESS;
	}


测试 发送参数如下:

{
"account_id": "6",
"verify_content": "资料修改6",
"verify_type": "N"
}

成功接收参数。此时接口完成。

Android与Struts2交互:获取和处理JSON格式数据 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,并且目前广泛应用于Web API中的数据传输。HTTP(超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。它是互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。HTTP协议是无状态的协议,它无法保存之前发送的请求或响应信息。 阅读详情

相关推荐

struts2返回json数据用query在页面接收

struts2返回json数据用query在页面接收

Struts2接口接收Json参数

Struts2接口接收Json参数 1、编写工具类获取json对象 import org.apache.struts2.ServletActionContext; import javax.servlet.http.HttpServletRequest; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; /**

qq_39771919的博客 2492

ASME B31.3-2024工艺管道标准介绍

ASME B31.3-2024《过程管道》是ASME发布的最新版工业管道标准,适用于石油、化工、制药等行业的管道系统设计、建造和维护。该版标准进行了多项重要更新,包括软管管理、应力指数调整、新增管件类型、焊接检查和泄漏测试等条款修订,并新增了书面报告要求。标准共594页,为全球过程工业提供管道安全规范,对保障管道系统完整性、可靠性具有重要意义,被多国强制采用或推荐使用。

TXNMG的博客 4711

struts2后台接口接收json数据

情景:最近接手了一个控制器为Struts2的项目,struts2之前没用过,在接口接收json参数时,出现了些问题,解决后记录一下。 问题:我使用是下面方法中加@RequestBody Judgesticket judgesticket进行接收,但是会报找不到类方法错误。 最后一查,发现struts2中Action不支持,然后在网上找了不少,最后解决如下: [1]传递数据 { ...

L-seeker-Q的博客 2690

Camera ITS测试

一、手机端设置: 将 CtsVerifier.apk 安装到设备上, 连接上linux主机。 二、主机端设置: 基础:CTS测试运行环境 然后,主机安装python2.7,及numpy/scipy/matplotlib/opencv 栈和 python 成像库。按照下面的命令依次安装: sudo apt­-get install python-­numpy sudo apt-­g...

wangubuntu的专栏 7786

SPAD 单光子雪崩二极管

SPAD,全称为,是一种高灵敏度的光电探测器件,能够在非常低的光照水平下检测单个光子。SPAD在工作时,当一个光子被探测器吸收后,能够触发一个雪崩效应,产生一个可以被检测到的电信号。

qq_42786033的博客 1万+

Struts2 Action接收POST请求JSON数据及其实现解析

一.认识JSON JSON是一种轻量级、基于文本、与语言无关的数据交换格式,可以用文本格式的形式来存储或表示结构化的数据。 二.POST请求与Content-Type: application/json 常用的HTTP请求方法有GET, POST, PUT, DELETE等。在提交POST请求时,请求数据放在消息体(Body)中,请求数据的格式及编码方式用Content-Type来指定。如我...

weixin_30675967的博客 1284

【WebApi + Sqlserver】 使用C#编写WebApi并打开sqlserver数据库进行访问,代码适用于简单练习,真实开发需自行完善

【WebApi + Sqlserver】 使用C#编写WebApi并打开sqlserver数据库进行访问,代码适用于简单练习,真实开发需自行完善

2302_78387246的博客 3594

Struts2框架接受/返回json数据

Struts接口可以从流中接受json数据并解析,并以流的形式返回给前端。如下所示: public class testController extends ActionSupport{ private InputStream inputStream; private String getRequestPostData(HttpServletRequest request)...

乐点的博客 948

新手必看:用FileZilla从武大IGS中心下载GNSS数据,再到crx2rnx转换的完整流程

本文详细介绍了新手如何通过FileZilla从武汉大学IGS中心下载GNSS数据,并使用crx2rnx工具将数据转换为RINEX格式的完整流程。涵盖工具准备、FTP连接、文件解压、格式转换及常见问题排查,帮助测绘和地信专业人员高效处理GNSS观测值数据。

weixin_29292431的博客 427

fanuc机器人I/O分配

FANUC机器人在和其他外部设备进行通讯时,需要对信号进行配置。 在机器人处于UOP自动分配状态时,系统会自动检索已配对设备,并分配相应的机架号。 当我们需要手动对信号进行分配时,可参考以下机架号进行配置。 不同的通讯协议对应的机架号不同,外部通讯协议常用的机架号参考下表: 序号 机架号 通讯类型 1 0 Process I/O 2 1-15

haier123888的博客 1万+

利用Struts2返回json格式的两种方式

json是比较常用的格式,特别是B/S架构中,servlet向前端传递数据的时候用的相当多。 一、json格式 json格式:单个对象 {name:lubby,address:China,age:22}    数组[  {name:lubby,address:China,age:22} , {name:Tom,address:America,age:19}  ] 二、通过json jar包传

1179

YOLOv改进 | YOLOv11添加WTConv小波卷积,能够更有效地捕捉局部和全局特征

在计算机视觉目标检测领域,YOLO(You Only Look Once)系列算法凭借“单阶段检测”的高效性(一次前向传播同时完成目标定位与分类),已成为工业界与学术界的主流选择。从YOLOv1到YOLOv11,算法持续迭代优化,在速度与精度之间寻求平衡,广泛应用于自动驾驶、智能安防、工业质检等场景。为解决上述问题,本文提出一种基于,将输入特征图分解为不同频率的子带(低频全局信息与高频局部细节),并分别通过卷积操作提取局部与全局特征,最后融合多尺度特征,从而更有效地捕捉目标的局部细节与全局结构。

走向CTO的路上... 1249

使用Struts2的JSON插件来实现JSON数据传递

想要实现此功能第一步需要Struts2的核心架包,第二步需要struts2-json-plugin-2.3.30架包,在lib文件夹下可以找到。 还是借用上次的笔记 来继续写,这个时候我们就不需要用到Servlet了,要使用到Action。 配置xml

柠檬需要糖 2630

西门子S7-1200PLC与FANUC机器人进行PROFINET IO通信的具体方法和步骤详解

西门子S7-1200PLC与FANUC机器人进行PROFINET IO通信的具体方法和步骤详解

Robot_PLC_HMI_Automation 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

html5接收struts2数据,Struts2 Action接收POST请求JSON数据及其实现解析(示例代码)

一.认识JSONJSON是一种轻量级、基于文本、与语言无关的数据交换格式,可以用文本格式的形式来存储或表示结构化的数据。二.POST请求与Content-Type: application/json常用的HTTP请求方法有GET, POST, PUT, DELETE等。在提交POST请求时,请求数据放在消息体(Body)中,请求数据的格式及编码方式用Content-Type来指定。如我们常用的表单...

weixin_29732737的博客 657

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Struts2与ExtJs Grid结合使用json格式数据

1.引入struts2核心jar包,与jsonplugin-0.32.jar 2.配置struts.xml文件 /json_grid.jsp 配置struts.i18n.encoding常量,不再使用GBK编码,而是UTF-8编码,这是回为AJAX的POST请求都是以UTF-8的方式进行编码的。

夜凉如水 5855

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

struts2整合json使用

1、首先在SSH包的基础上,另外再导入commons-beanutils.jar、ezmorph-1.0.5.jar、json-lib-2.1-jdk15.jar、struts2-json-plugin-2.1.8.1.jar四个包,我用的是是struts是2.1.8.1版本。 2、在struts的配置文件上,action的包要继承json-default,即由原来的struts-defualt

Jevon's Blog 1万+

Struts2 后台Action接收POST请求JSON数据及其实现解析

一.数据表单 <form id="messagePrioritySetting" name="messagePrioritySetting" method='post'> <table class="table_gry" > <tr> <td width="50" height=22 class="col

m0_38068812的博客 7183

Struts2+Jquery实现ajax并返回json类型数据

主要实现步骤如下: 1、JSP页面使用脚本代码执行ajax请求 2、Action中查询出需要返回的数据,并转换为json类型模式数据 3、配置struts.xml文件 4、页面脚本接受并处理数据 关键有如下几个点 1.引入包:struts2对数据进行json序列化,必须要用到struts2的json-lib,struts2-json-plugin包; 2.j

shuaishuai123485615的专栏 3566

struts2之使用JSON插件实现Ajax(使用JSON插件)

struts2之使用JSON插件实现Ajax(使用JSON插件)

fhd001的专栏 1567

Struts返回Json格式数据

我们知道json数据就是一堆键/值对的集合,更随意的可以就把它理解为符合特定规则字符串。那么我们怎么利用这个特殊的“字符串”来进行前后台的交互呢? 其实很简单,让你用字符串交互估计都会,用json也没有那么复杂。         简单的我们直接向页面输出:先获取到response(不要问我怎么获取,用你的奇技淫巧可以办到的)然后调用response.getWriter().write(

u014424628的专栏 2776

Struts2返回JSON对象

转自:微点阅读 https://www.weidianyuedu.com 如果是作为客户端的HTTP+JSON接口工程,没有JSP等view视图的情况下,使用Jersery框架开发绝对是第一选择。而在基于Spring3 MVC的架构下,对HTTP+JSON的返回类型也有很好的支持。但是,在开发工作中,对功能的升级是基于既定架构是很常见的情况。本人碰到需要用开发基于Struts2的HTTP+JSON返回类型接口就是基于既定框架结构下进行的。 Struts2返回JSON有两种方式:1.使用Servl..

ysds20211402的博客 1258

Struts2 返回 json 格式数据

最近由于工作原因,没时间更新,那些没能看到的同学,很抱歉了,话不多说,继续写~~ 关于json的返回需要用到一个工具包来将书转换为json格式,在此用到的jar包为: 1 import net.sf.json.JSONArray;  //将数据转换为JSON数组 2 import net.sf.json.JSONObject;  //将数据转换为JSON对象 dao层的代码 ...

weixin_30393907的博客 168
上一篇: commons-email实现发送邮件及遇到的问题
下一篇: Linux 下 vi/vim 文本编辑器超详细使用指南
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值