SSM与android端数据交互

一.前言

最近第一次用ssm与安卓端实现了数据交互,我这里数据交互通过传送接受JSON数据来实现的。实现了登录注册和对某些实体类数据的增删改查。


二.后端的具体实现

我们实体类的数据和安卓端的实体数据名字要是相同的,不然获取不到后端发送的JSON数据,作为后端我们不用去了解安卓端是怎么实现发送和接受JSON数据,我们只要保证实体类属性名相同,并给他们一个后端接口(一个URL地址),也就是说它们之间的数据接受和发送都是通过url来实现了,所以ssm在只需要在控制层去拦截url得到相应的request和respond。

下面展示某登录部分的一个控制层代码

@Controller
@RequestMapping("/User")
public class UserController {


	@Autowired
	private UserService userService;

	@RequestMapping(value = "/login", method = RequestMethod.POST)
	public void login(HttpServletResponse response, @RequestBody User user) throws IOException {
            userService.login(user);
            JSONObject jsonObject = new JSONObject().fromObject(user);
            byte[] dataByte = null;
	    ServletOutputStream output;
	    output = response.getOutputStream();
	     dataByte = jsonObject .toString().getBytes("UTF-8");
	     output.write(dataByte);
     }
}

安卓端要传参数过来,后端通过@RequestBody User user 接受到user的json对象,登录成功往客户端输出user,也是把user封装成json对象,response.getOutputStream()这样获取一个OutputStream流的时候,我们在使用完之后,并不需要手动的去关闭,系统会自动关闭它,如果我们手动去关闭这个流的话,还会引发一些问题,用ServletOutputStream输入到客户端,安卓端获得相应数据。如果是要像客户端输入字符流就用PrintWriter。一般都是把输入到客户端数据这部分封装成一个类的。

另外要指定是以什么方式传输数据,我这里指定的是POST方法  method = RequestMethod.POST。写完后我们只要把该接口给安卓端就可以了,如该url为:http://域名/项目名/User/login。


三.测试后端接口

当我们写完后端接口后并不知道可以用吗,能接到数据吗?是否后端还有问题?

在这里我推荐一个测试工具Postman(有些是装网页插件,在网站上测试,自己可以去了解一下)。我简单的介绍Postman用法。

新建一个项目


在填写url地址,也就是后端接口


点击send发送,如果没放到服务器上可以使用本机测试地址localhost:8080。


如果要发送json数据,先点击headers,配置发送json数据


点击body,在点击raw,在里面填写json格式数据就可以了。



Postman就介绍这么多了,想了解更多就去搜索Postman吧。


猜你喜欢

转载自blog.csdn.net/qq_38682952/article/details/80471576