1. 程式人生 > >SSM與android端資料互動

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);
     }
}
   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吧。