微信小程序登录注册demo+java服务器(二)

四.eclipse

1.关键代码及注解

LoginServlet

package yan.servlet;


import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONObject;
import yan.dao.LoginDao;
import yan.dto.UserDTO;

/**
 * Servlet implementation class api
 */

public class LoginServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public LoginServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("已经进入LoginSevlet");
		//接收小程序传过来的account和password
		String account = request.getParameter("account");
		String password = request.getParameter("password");
		UserDTO user = new UserDTO(account,password);
		LoginDao logindao = new LoginDao();
		//初始化为false
		Boolean isLogin=false;
		try {
			//判断是否登陆成功
			isLogin = logindao.Login(user);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		Map map=new HashMap();
		if(isLogin) map.put("message", "ok");
		else map.put("message", "err");
		//要将Map转化为JSON,才可以传数据返回小程序
		JSONObject mapObject=JSONObject.fromObject(map);
		System.out.println("mapObject:"+mapObject.toString());
		//从服务器传mapObject数据到小程序
		response.getWriter().write(mapObject.toString());  			
	}
	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

获取小程序传过来的数据用request.getParameter()方法,当然肯定还有其他方法的,在这就不多说了。

String account = request.getParameter("account");

()里面account的名称一定要和小程序里面login.js文件中login: function (e)函数的data里的名称相对应

data: {
        //从全局变量data中获取数据
        account: this.data.account,
        password: this.data.password,
      },

从服务器也就是后台传数据到小程序,要把数据转化为json格式才可以传送,然后再运用response.getWriter().write()方法把数据传到小程序。许还有其他的方法把数据传到小程序,但网上基于JAVA开发小程序服务器的资料太少了,这也是我写下这边文章的原因之一。

web.xml



  API
  
    index.html
    index.htm
    index.jsp
    default.html
    default.htm
    default.jsp
  
  
    
    loginServlet
    loginServlet
    yan.servlet.LoginServlet
  
  
    loginServlet
    /login
  
  
    
    registerServlet
    registerServlet
    yan.servlet.RegisterServlet
  
  
    registerServlet
    /register
  

其中的名称一定要和小程序里url地址的一样

url: 'http://localhost:8080/API/login',
url: 'http://localhost:8080/API/register',

中的名称只要和中的 名称一样就可以,但不要用敏感关键字,不然tomcat启动不了。是指向我们要注册的servlet的类地址, 要带包路径,按着ctrl键,点击名称,只要能跳到相应的servlet类就表明没有填错。

最后,运行项目的时候,记得要把tomcat启动,不然小程序会提示调用接口失败。

五.tomcat

我创建的数据库名为user,表名也是user

六.完整代码下载

百度云:https://pan.baidu.com/s/1AcS5o0CJZpj4y9Vjq9cAAw  提取码:josr 

七.总结

1.微信小程序也就和网页差不多,只要会做网页,小程序很容易上手的

2.学习中遇到的难点是,不懂小程序如何把数据传到服务器,服务器怎么返回数据。

 

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