javaweb向App提供接口教程
模拟个登陆://粉色是代码,黑色是注释和解释
想登录成功我们肯定要给用户返回当前登录用户的信息比如用户名等…那么我们也要同时再创建一个用户实体类名字叫UserEntity
那我们先定义一下UserEntity里面所需要的字段吧
- package com.springmvc.entity;
- publicclass UserEntity {
- private String username;// 用户名
- private String password;// 密码
- private String nickname;// 昵称
- private String gender;// 性别
- private String age;// 年龄
- get set 方法省略。。。
- }
- package com.springmvc.controller;
- @Controller
- @RequestMapping("LoginController")
- public class LoginController {
- // 路径参数{name}填入用户名,{pass}填入密码。我们设置为GET请求。
- @RequestMapping(value ="/login_get.json/{name}/{pass}", method = RequestMethod.GET)
- @ResponseBody
- // 当使用@RequestMapping URI template 样式映射时, 即 /login_get.json/{name}/{pass},
- // 这时的name和pass可通过 @Pathvariable注解绑定它传过来的值到方法的参数上。
- public Object login(@PathVariable String name,@PathVariable String pass) {
- // 假如我们数据库里用户名是admin密码为123456
- if (name.equals("admin") && pass.equals("123456")) {
- // 到了这里就说明我们登录成功了,这时候我们就要给Android端返回这个用户的信息
- // 这里我们也就先写假数据了
- UserEntity entity = new UserEntity();
- entity.setUsername("admin");
- entity.setPassword("123456");
- entity.setNickname("张三");
- entity.setGender("男");
- entity.setAge("22");
- return entity;// 此时返回此用户实体类
- } else {
- Map map = new HashMap();
- map.put("msg","登录失败,请检查用户名和密码是否正确");
- return map;// 登录失败给Android端返回一个错误消息提醒用户
- }
- }
- }
- 由于是GET访问,我们可以直接用浏览器访问 输入正确的用户名和密码,我们看下图当前用户实体自动转换为json字符串了,这时拿到json字符串就好办了,我们Android端就可以进行解析此json并且拿到当前用户的信息了
在来个注册吧-
- package com.springmvc.controller;
- import java.util.HashMap;
- import java.util.Map;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.ModelAttribute;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.ResponseBody;
- import com.springmvc.entity.UserEntity;
- @Controller
- @RequestMapping("RegisteredController")
- public class RegisteredController {
- // 由于是提交数据所以我们这里使用POST请求
- @RequestMapping(value ="/registered_post.json", method = RequestMethod.POST)
- @ResponseBody
- // 此处@ModelAttribute 可以吧POST请求所携带的json字符串自动解析成后面所写的实体类
- // ,然后就直接可以通过这个UserEntity取到Android端传过来的数据
- public Object registered(@ModelAttribute UserEntity entity) {
- String username = entity.getUsername();
- String password = entity.getPassword();
- String nickname = entity.getNickname();
- String gender = entity.getGender();
- String age = entity.getAge();
- // 现在数据已经拿到了(真正开发时候我们需要把这里Android传回来用户登记的数据插入到数据库中就好了)
- // 为了方便查看,所以这里我把返回的数据拼到一起了
- String string = "用户名:" + username +" - 密码:" + password + " - 昵称:"
- + nickname + " - 性别:" + gender +" - 年龄:" + age;
- // 如果数据库插入成功然后返回true,再给Android返回一个消息,告诉Android端已经注册成功,可以进行登录了
- // 这里没有涉及到数据库操作,所以这里我们这里简单判断一下数据不为null就证明注册成功了
- if (username !=null && password !=null && nickname !=null
- && gender != null && age !=null) {
- // 成功返回消息告诉Android端
- Map<String, String> map = new HashMap<String, String>();
- map.put("msg","注册成功!");
- return map;
- } else {
- // 失败返回消息告诉Android端
- Map<String, String> map = new HashMap<String, String>();
- map.put("msg","注册失败!");
- return map;
- }
- }
- }
那么我们现在给这个接口打个断点,用一个模拟http post请求的工具测试一下这个接口是否写好了
OK进断点了,我们看一下下图,参数全部传了过来,这就说明我们注册成功了!
这样我们SpringMVC的一个小Demo就写完了,那么我在教大家如何把这个项目发不到sae上面,Java项目需要使用war包上传到sae上,所以我们先把我们的程序打包为war包(注意:注意war包名称必须和appname相同)1.项目右键 选择 Export
2.选择 JavaEE - WAR file
3.然后我们选择导出的路径,我就选择桌面了
4.然后我们进入我们的sae应用中心 - 代码管理 第一次上传需要创建版本
5.我们选择创建版本
6.然后我们上传war包 就OK了