实现微信小程序与服务器(SSM)通信

SSM(Spring+SpringMVC+MyBatis)框架集由Spring、SpringMVC、MyBatis三个开源框架整合而成。其中spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。SpringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。

1、小程序与 web 的区别

小程序是 C/S 结构即客户机和服务器结构。这种体系结构模式是以数据库服务器为中心、以客户机为网络基础、在信息系统软件支持下的两层结构模型。这种体系结构中,用户操作模块布置在客户机上,数据存储在服务器上的数据库中。客户机依靠服务器获得所需要的网络资源,而服务器为客户机提供网络必须的资源。
web 是B/S(Browser/Server)结构,即浏览器服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面通过浏览器来实现,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑在服务器端(Server)实现,形成所谓三层结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。

2、数据传输

首先先看看微信向我们提供的网络请求 API 例子

wx.request({
  url: 'test.php', //仅为示例,并非真实的接口地址
  data: {
     x: '' ,
     y: ''
  },
  header: {
      'content-type': 'application/json' // 默认值
  },
  success: function(res) {
    console.log(res.data)
  }
})

好吧这熟悉的代码不就是在 web 常用的 Ajax 吗?为什么之前要明确小程序的软件结构,因为小程序(C/S)的数据传输是不涉及跨域传输的,而 web 是跨域的。所以这就会使 SSM 有所区别。

  • SSM 服务端代码
web
    @ResponseBody
    @RequestMapping(value="/userLogin")
    public Object UserLogin(String callback,User user){
        
        UserSession=user;//将信息保留到session中
        
        List 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 test = userSerivce.existUser(user);
                                   
        return test;
    }

web 涉及跨域传输的问题,且返回的不是 json 而是 jsonp。当前端使用 AJAX 发送请求时会自带一个 callback 请求头,小程序直接响应返回 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' // 默认值
      },
      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);            
        }
      }
    })
实现微信小程序与服务器(SSM)通信_第1张图片
response

OK 成功获取服务器数据

你可能感兴趣的:(实现微信小程序与服务器(SSM)通信)