使用ssh框架实现对微信小程序前台的通信,做到前后台分离,后台页面都为静态页面,通过用json来现实与前台通信(面向接口编程)。在这次因为只为了实现通信所以没有用hibernate。只用了struts2+spring,也是ssh框架中struts和spring整合。实现了前台发送用户名密码,后台返回连接成功。

项目环境(Tomcat8.5+myeclipse2016 ci)

一、所需要导入的包。

1.struts2的包



2.spring的包



二、目录包结构



三、dao层代码

1.UserDao.java
package com.demo.dao; import com.demo.po.User; public interface UserDao {
String toGet(User user);//获取前台发送的用户名密码 }
2.UserDaoImp.java
package com.demo.dao; import org.springframework.stereotype.Repository; import
com.demo.po.User; @Repository public class UserDaoImp implements UserDao{
@Override public String toGet(User user) { // TODO Auto-generated method stub
String msg = user.getUsername()+user.getUserpass(); return msg; } }
四、po层代码

1.JsonResult.java
package com.demo.po; import java.util.HashMap; import java.util.Map; public
class JsonResult { private String result; private Map<String,Object> map = new
HashMap<String, Object>(); public String getResult() { return result; } public
void setResult(String result) { this.result = result; } public Map<String,
Object> getMap() { return map; } public void setMap(Map<String, Object> map) {
this.map = map; } public String getTest(){ return "我服务器,你连接到我了"; } }
2.User.java
package com.demo.po; public class User { private String username; private
String userpass; public String getUsername() { return username; } public void
setUsername(String username) { this.username = username; } public String
getUserpass() { return userpass; } public void setUserpass(String userpass) {
this.userpass = userpass; } public User(String username,String userpass){
super(); this.username=username; this.userpass=userpass; } public User(){
super(); } }
五、server层

1.UserService.java
package com.demo.server; import com.demo.dao.UserDao; import com.demo.po.User;
public interface UserService { public UserDao getUserDao(); public void
setUserDao(UserDao userDao); public String toGet(User user); }
2.UserServiceImp.java
package com.demo.server; import javax.annotation.Resource; import
org.springframework.beans.factory.annotation.Autowired; import
org.springframework.stereotype.Service; import com.demo.dao.UserDao; import
com.demo.po.User; @Service public class UserServiceImp implements UserService {
@Autowired private UserDao userDao; public UserDao getUserDao() { return
userDao; } public void setUserDao(UserDao userDao) { this.userDao = userDao; }
public String toGet(User user){ String msg = userDao.toGet(user); if(msg==null)
return "failed"; else return "success"; } }
六、Action层

1.UserAction.java
package com.demo.testAction; import java.util.Map; import
java.util.logging.Logger; import org.apache.struts2.interceptor.RequestAware;
import org.springframework.beans.factory.annotation.Autowired; import
org.springframework.stereotype.Controller; //import javax.annotation.Resource;
import com.demo.po.JsonResult; import com.demo.po.User; import
com.demo.server.UserService; import com.google.gson.Gson; @Controller public
class UserAction implements RequestAware { @Autowired //@Resource(name =
"userServiceImp") 如果49行报空错误可以试试这个注解。需要导的包在上面 private UserService userService;
private Map<String,Object>request; private JsonResult jsonResult; private User
user; Logger log = Logger.getLogger(this.getClass().getName()); public
JsonResult getJsonResult() { return jsonResult; } public void
setJsonResult(JsonResult jsonResult) { this.jsonResult = jsonResult; } public
User getUser() { return user; } public void setUser(User user) { this.user =
user; } public Map<String, Object> getRequest() { return request; } @Override
public void setRequest(Map<String, Object> arg0) { // TODO Auto-generated
method stub request=arg0; } public String toget(){ jsonResult = new
JsonResult(); log.info("userService ---->" + userService ); String msg =
userService.toGet(user); jsonResult.setResult(msg); /*Map map = new
HashMap<String, Object>(); map.put("user", user); jsonResult.setMap(map);*/
log.info(new Gson().toJson(jsonResult)); return "success"; } }
七、spring的配置文件applicationContext.xml编写(因为使用注解,所以配置文件只写了自动扫描包)
<?xml version="1.0" encoding="UTF-8"?> <beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<context:annotation-config/> <context:component-scan base-package="com.demo" />
</beans>
八、struts.xml配置文件编写
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache
Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package
name="default" namespace="/" extends="struts-default,json-default"> <action
name="toget" class="com.demo.testAction.UserAction" method="toget"> <!--
页面显示json --> <result name="success" type="json"> <param
name="root">jsonResult</param> </result> </action> </package> </struts>
九、微信小程序前台代码

1.index.xml(点击按钮发送请求)
<!--index.wxml--> <view class="container"> <view class="userinfo"> <button
bindtap='requestdemo'> 发送请求 </button> </view> </view>
2.index.js
//index.js //获取应用实例 const app = getApp() Page({ data: { }, //事件处理函数
requestdemo:function(){ wx:wx.request({ url:
'http://localhost:8080/serverDemo/toget.action', data: { 'user.username':'qwe',
'user.userpass': '123' }, header: { 'content-type': 'application/json' // 默认值
}, method: 'GET', dataType: 'json', responseType: 'text', success:
function(res) { console.log(res.data); }, fail: function(res) {
console.log("连接失败"); } }) }, onLoad: function () { } })
3.index.wxss
/**index.wxss**/ .userinfo { display: flex; flex-direction: column;
align-items: center; } .userinfo-avatar { width: 128rpx; height: 128rpx;
margin: 20rpx; border-radius: 50%; } .userinfo-nickname { color: #aaa; }
.usermotto { margin-top: 200px; }
十、效果展示

1.微信前台控制台(相当于微信小程序传值给服务器:
http://localhost:8080/serverDemo/toget.action?user.username=qwe&user.userpass=123

<http://localhost:8080/serverDemo/toget.action?user.username=qwe&user.userpass=123>




2.浏览器传值访问:
http://localhost:8080/serverDemo/toget.action?user.username=qwe&user.userpass=123

<http://localhost:8080/serverDemo/toget.action?user.username=qwe&user.userpass=123>



ps:本人也是刚学习完不久如果有说错和不足的地方欢迎指出

友情链接
ioDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信