背景
APICloud是一款制作app的软件,它提供后台服务器,功能十分的强大。一般的企业都会自己的服务器,这个就涉及到后台接口了!本人学习的语言是java,所以自然采用java做apicloud的后台!
接口原理
APICloud前台页面通过ajax请求到java后台的servlet页面
servlet页面通过把数据封装成JSON的格式返回给APICloud的前台页面
由于请求地址如果不正确的话,就会让人不知道是APICloud的页面ajax的请求地址有问题,还是servlet封装JSON数据返回有问题,所以用postman来判断url是否正确是最合适不过的
APICloud页面
-
表单页面代码
原理:通过点击提交按钮,触发js中onclick事件,把用户名和密码的文本框内容返回到后台
-
1、url是可以在浏览器上输入这个地址就可以访问得到的相应servlet的地址
2、提交方式要么是post要么是get
3、 dataType:'JSON',这个很重要,因为JSON是可以跨平台的文本语言是js的分支
4、 returnAll:true,是否返回数据,是
java后台,由于是测试,代码尽可能的简单些
我只写了一个servlet
注意web.xml里面要配置servlet
package cn.com.servlet;
import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.com.bean.User;
import net.sf.json.JSONArray;
public class RegeditServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//ServletContext ser = getServletContext();
//ApplicationContext ioc = (ApplicationContext) ser.getAttribute("app");
doPost(request, response);
//Regedit re=ioc.getBean(Regedit.class);
//re.login();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String user=request.getParameter("name");
String pass=request.getParameter("pass");
System.out.println("用户名:"+user);
System.out.println("密码:"+pass);
//将List转化为JSON
System.out.println("----------");
String ty="java与apicloud的前后台交互!!";
ArrayList<String> list=new ArrayList<String>();
list.add(ty);
JSONArray json=JSONArray.fromObject(list);
//设置编码
response.setCharacterEncoding("utf-8");
//写入到前台
response.getWriter().write(json.toString());
}
}
测试阶段
在后台开启java这个项目的服务器,servlet是一个线程,只要有httpservlet请求过来都会执行的!
学了快一年的java,我现在才知道servlet是一个多线程
apicloud需要在真机模拟环境或者是在海马玩上面运行
输入用户名和密码,点击提交,看看是不是会返回java的数据
myeclispe/eclispe控制台上是不是有打印的数据,就知道这个接口和apicloud交互有没有问题了!