写在前面:本文内容很是浅显。
很明显,一个应用后台最基础的作用就是和前台进行数据交互。打开一个APP以后的第一步,很可能就是输入用户名和密码,那么这个用户名和密码就需要传到后台进行验证,再把验证的结果传回给前台。
- 怎么传?
HTTP协议的POST和GET方法:常见的数据传输协议 - 什么格式?
Json:高效的数据传输格式 - 传过来怎么处理?
Struts2:一个框架,作为控制器(Controller)来建立模型与视图的数据交互(必须导入必要的类库)
采用从前台到后台的顺序来叙述:
1.使用POSTMAN构造一个POST请求(如下图):
URL为:{{host}}/Fixer/checkUser {{host}}是后台的ip地址
form-data格式的参数为phonenumber和userpassword
2.在相应的Struts2的配置文件struts2.xml中添加:
<package name="default" extends="json-default" >
<action name="checkUser" class="userAction"
method="checkUser">
<result name="success" type="json">
<param name="root">responseJson</param>
</result>
<result name="error" type="json">
<param name="root">responseJson</param>
</result>
</action>
</package>
这里的关键点在于继承:json-default
3.相应的Action文件中代码
public class UserAction extends ActionSupport{
//service里面进行登录验证
private IUserService userService;
//Map类型的返回数据
public Map responseJson;
private String userpassword="";
private String phonenumber="";
//一堆getter和setter
public IUserService getUserService() {
return userService;
}
public void setUserService(IUserService userService) {
this.userService = userService;
}
public Map getResponseJson() {
return responseJson;
}
public void setResponseJson(Map responseJson) {
this.responseJson = responseJson;
}
public String getUserpassword() {
return userpassword;
}
public void setUserpassword(String userpassword) {
this.userpassword = userpassword;
}
public String getPhonenumber() {
return phonenumber;
}
public void setPhonenumber(String phonenumber) {
this.phonenumber = phonenumber;
}
//登录验证
public String checkUser(){
User usertest=new User();
usertest.setUserpassword(userpassword);
usertest.setPhonenumber(phonenumber);
User loginUser=userService.checkUser(usertest);
Map<String, Object> map=new HashMap<String, Object>();
if (loginUser!=null) {
//登录成功(result是一个用来显示结果的类,构造器有三个参数)
result successResult=new result("1", null, "登录成功");
map.put("result", successResult);
this.setResponseJson(map);
return SUCCESS;
}
else {
result failResult=new result("0","登录失败", null);
map.put("result", failResult);
this.setResponseJson(map);
return ERROR;
}
}