小程序JAVA后台配置[完整]

这里先明确几点:

  1. 小程序前后台是分离的,前台用微信开发者工具开发,后台使用自己的技术开发;我这里用的是JAVA
  2. 刚了解到上面那一点的时候,很奇怪,这不是跨域访问么?怎么可以?后来查询了资料,知道是小程序前台 —>微信后台—>你的后台。
  3. 基于上一点,必然要保证访问的安全性,所有服务都需要验证身份,这里微信提供了用户登录机制和验证机制。

一、微信前台AJAX

  • 微信封装了AJAX,官方API文档有,照样画葫芦就可以了。

/**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    wx.request({
      url: 'http://localhost:8080/wxCode/wx_getDB',
      data: {
        phoneNum: '13738042310'
      },
      method: 'GET',
      header: {
        'content-type': 'application/json' // 默认值
      },
      success: function (res) {
        var data = res.data;
        console.log(data)
      },
      fail: function (res) {
        console.log(".....fail.....");
      }
    })
  },
  • 设置本地测试时,不验证https和域名,这样才能先在本地测试(设置——项目设置)。

小程序JAVA后台配置[完整]_第1张图片

二、后台JAVA配置

  • 这里使用的是struts2框架,myeclipse 2017
  • 需要配置fastjson(阿里json包),sqljdbc4(SQLSERVER JDBC包) ,struts Action映射,tomcat 数据连接池。
  • 测试完成。
  1. 创建一个web项目,直接在项目中右键加入struts框架。

小程序JAVA后台配置[完整]_第2张图片

      2.网上下载fastjson,sqljdbc4包,导入项目中。

      3.新建一个包与类,最后形成如下目录,名字自取。

小程序JAVA后台配置[完整]_第3张图片

4.配置Action映射,将方法映射成可以访问的servlet,需要操作struts.xml文件。

     如下:




	
		
			
                     data
            
		
	
    
里就是配置,这里直接配置的json数据作为返回对象,和小程序交流你也用不到界面。继承struts-default,json-default

中  name就是外部链接地址的访问对象: http://localhost:8080/项目名/wx_方法名,这里用了映射,wx_加上方法名就可以直接访问指定的方法。配置这一条就够用了。

中  class指定包;

内部如上就行了,data是参数名。

5.配置tomcat数据连接池。

  • 打开项目空间内,tomcat服务配置。

小程序JAVA后台配置[完整]_第4张图片

  • 配置context.xml,尾行前加入

 
  • 配置web.xml


      DB Connection
      jdbc/DBNAME(与context中name相对应)
      javax.sql.DataSource
      Container
  
  • 编写后台文件HelloWord

	public String data="";  //返回参数data,与context中配置名相同
	
	@Override
	public String execute () throws Exception{
			System.out.println("正在执行Action!");
			return SUCCESS;
	}
	
	
	public String getDB() throws SQLException{
		 Connection dbConn=null;
		 String username="";
		 try {
			      HttpServletRequest request = ServletActionContext.getRequest();  //获取请求头
				 String phoneNum=(String)request.getParameter("phoneNum");   //获取参数phoneNum与微信前台传入参数
          System.out.println("获取参数手机号:"+phoneNum);
         Context ctx=new InitialContext();
				 DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/DNAME");
				 dbConn=ds.getConnection();
                                 //以上获取context中配置的数据库连接
           System.out.println("成功连接数据库");
           String sql="select * from app_user where sjh= ?";
				 PreparedStatement pstmt = dbConn.prepareStatement(sql);
				 pstmt.setString(1, phoneNum);
				 ResultSet rs =  pstmt.executeQuery();
				 while(rs.next()){
					 username=rs.getString("yhm");
				 }
                                 //以上根据手机号获取姓名 (JDBC)
               } catch (Exception e) {

		 e.printStackTrace();

		 }finally{
			 dbConn.close();
		 }

		 JSONObject obj=new JSONObject(); 
		 obj.put("name", username);
		 data=obj.toString();
               //以上将值赋予data,返回成功。
                return SUCCESS;
	}
	
6.测试

     前台成功根据手机号读出用户名:

     后台成功获取参数,并连接数据库

7.总结

主要就是配置了servlet和数据库连接池,还有针对小程序的一些特殊点;

如果是自己本来就做java web项目,这种后台估计都不用配了。这部分内容对于前端比较陌生,所以这里写一下。

如有错误和改进,请提出,谢了。

你可能感兴趣的:(小程序)