前端使用ajax发起请求,SpringBoot接收请求的几种方式
关于SpringBoot项目,接收前端的Ajax请求传过来的参数,自己总结了4种接收方式,如下:
前端Ajax代码
$(".btn").click(doLogin);
function doLogin(){
var username = $("#usernameId").val();
var password = $("#passwordId").val();
var url = "login";
var params = {
"username":username,
"password":password
};
console.log("params",params);
$.post(url,params,function(result){
if(result.state==1){
//跳转到indexUI对应的页面
alert("sucess");
}else{
alert("error");
}
return false;//防止刷新时重复提交
});
}
第一种方式使用HttpServletRequest request接收
@RequestMapping("/login")
@ResponseBody
public JsonResult login(HttpServletRequest request){
String username = request.getParameter("username");
String password = request.getParameter("password");
}
第二种方式使用封装好的对象接收
@RequestMapping("/login")
@ResponseBody
public JsonResult login(UserEntity userEntity){
System.out.println(userEntity.toString());
//打印结果:UserEntity{username='admin', password='jialin'}
String username = userEntity.getUsername();
String password = userEntity.getPassword();
}
第三种方式用@RequestBody注解+String data接收
这种方式最麻烦不可取
@RequestMapping("/login")
@ResponseBody
public JsonResult login(@RequestBody String data){
System.out.println (data);
//打印结果:username=admin&password=jialin
String[] split = data.split("&");
System.out.println(split.length);
String[] usernameA = split[0].split("=");
String[] passwordA = split[1].split("=");
String username = usernameA[1];
String password = passwordA[1];
}
第四种方式用@Param获取单个值
@RequestMapping("/login")
@ResponseBody
public JsonResult login(@Param("username") String username,@Param("password") String password){
System.out.println(username);//可直接得到值
}