SSM(Spring+SpringMVC+MyBatis)框架集由Spring、SpringMVC、MyBatis三個開源框架整合而成。其中spring是一個輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。SpringMVC分離了控制器、模型對象、分派器以及處理程序?qū)ο蟮慕巧@種分離讓它們更容易進(jìn)行定制。MyBatis是一個支持普通SQL查詢,存儲過程和高級映射的優(yōu)秀持久層框架。
1、小程序與 web 的區(qū)別
小程序是 C/S 結(jié)構(gòu)即客戶機(jī)和服務(wù)器結(jié)構(gòu)。這種體系結(jié)構(gòu)模式是以數(shù)據(jù)庫服務(wù)器為中心、以客戶機(jī)為網(wǎng)絡(luò)基礎(chǔ)、在信息系統(tǒng)軟件支持下的兩層結(jié)構(gòu)模型。這種體系結(jié)構(gòu)中,用戶操作模塊布置在客戶機(jī)上,數(shù)據(jù)存儲在服務(wù)器上的數(shù)據(jù)庫中。客戶機(jī)依靠服務(wù)器獲得所需要的網(wǎng)絡(luò)資源,而服務(wù)器為客戶機(jī)提供網(wǎng)絡(luò)必須的資源。
web 是B/S(Browser/Server)結(jié)構(gòu),即瀏覽器服務(wù)器結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面通過瀏覽器來實現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實現(xiàn),主要事務(wù)邏輯在服務(wù)器端(Server)實現(xiàn),形成所謂三層結(jié)構(gòu)。這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級的成本和工作量,降低了用戶的總體成本。
2、數(shù)據(jù)傳輸
首先先看看微信向我們提供的網(wǎng)絡(luò)請求 API 例子
wx.request({
url: 'test.php', //僅為示例,并非真實的接口地址
data: {
x: '' ,
y: ''
},
header: {
'content-type': 'application/json' // 默認(rèn)值
},
success: function(res) {
console.log(res.data)
}
})
好吧這熟悉的代碼不就是在 web 常用的 Ajax 嗎?為什么之前要明確小程序的軟件結(jié)構(gòu),因為小程序(C/S)的數(shù)據(jù)傳輸是不涉及跨域傳輸?shù)模?web 是跨域的。所以這就會使 SSM 有所區(qū)別。
- SSM 服務(wù)端代碼
web
@ResponseBody
@RequestMapping(value="/userLogin")
public Object UserLogin(String callback,User user){
UserSession=user;//將信息保留到session中
List<User> test = userSerivce.existUser(user);
JSONPObject jsonpObject = new JSONPObject(callback,test ) ;
return jsonpObject ;
}
小程序
@ResponseBody
@RequestMapping(value="/userLogin")
public Object UserLogin(User user){
UserSession=user;//將信息保留到session中
List<User> test = userSerivce.existUser(user);
return test;
}
web 涉及跨域傳輸?shù)膯栴},且返回的不是 json 而是 jsonp。當(dāng)前端使用 AJAX 發(fā)送請求時會自帶一個 callback 請求頭,小程序直接響應(yīng)返回 json 就好不需要任何處理。
小程序請求
wx.request({
url: 'http://192.168.6.239:8080/LabProject/admin/userLogin', //用戶list
data: {
"uUsername": '2018',
"uPassword": '2018',
},
method: 'POST',
dataType:'json',
header: {
'content-type': 'application/json' // 默認(rèn)值
},
success: function (res) {
console.log(res.data);
for (var i = 0; i < res.data.length; i++) {
var name = res.data[i]['uUsername'];
console.log(name);
}
}
})
OK 成功獲取服務(wù)器數(shù)據(jù)