传递单参数
@RequestMapping("/name")
//1. 传递参数
//注:传参的时候一定要传递包装类型而非基础类型 因为基础类型忘写值时会直接报错 包装类型不会报错只会返回空null
//注:名字必须匹配
public String getName(String name){
String retName = name;
return retName;
}
传递对象
@RequestMapping("/people")
//2. 传递对象
//注:参数名和对象里的变量名必须一致 个数和顺序可以不同
public String getPeople(User user){
return user.toString();
}
传递多个参数
@RequestMapping("/names")
//3. 传递多个参数
//注:参数名必须一致 参数的顺序可以不一致
public String getNames(String name1,String name2){
String firstName = name1;
String secName = name2;
return name1 + " " + name2;
}
参数重命名
@RequestMapping("/rename")
//4.重命名
//注:@RequestParam() 括号里填前端传来的参数(字符串)
//注:加上这个注解@RequestParam()之后, 括号里写的参数前端就必须传递过来 如果前端不传递就会报错
//注:加上这个注解@RequestParam()之后, 想让括号里写的参数也不一定必须传递 就可以这样设置@RequestParam(value = "time", required = false)
public String rename(@RequestParam("haha")String name){
return name;
}
传递JSON对象
@RequestMapping("/getJSON")
//5. 传递JSON对象
//注:只有使用@RequestBody注解修饰才能得到JSON对象 一般用对象接收
public String getJson(@RequestBody User user){
return user.toString();
}
直接从 url 中传递参数 省略变量
@RequestMapping("/getMsg/{username}/{password}")
//6.直接从url中传递参数 省去传递的变量名
//注:/{}不能省略 {}里的内容和@PathVariable 括号里的内容应该一致
//前端在传递数据的时候,在正常的 url 后面使用 / 加上要传递的信息
public String getMsg(@PathVariable("username") String username,@PathVariable("password") String password){
return username + " " + password;
}
@RequestMapping("/getOtherMsg/{username}/and/{password}")
//注:不使用{}包裹的内容不会当作参数接收 但是也得写上 用来占位
public String getOtherMsg(@PathVariable("username") String username,@PathVariable("password") String password){
return username + " " + password;
}
上传文件
@RequestMapping("/upFile")
//7.上传文件
//注; @RequestPart 括号里写上传文件时 key里写的文件名
public String upFile(@RequestPart("myfile")MultipartFile file) throws IOException {
String path = "D:/home/ruoyi/result.png";
file.transferTo(new File(path));
return path;
// //根路径
// String root = "D:/home/ruoyi";
// //根路径 + 唯一的文件名 使每次都能保存不同的文件 而 不替换
// root += UUID.randomUUID().toString().replace("-","");
// //根路径 + 唯一的原来文件名 每次都保存原来文件的名字 不重命名
// root += file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
}
获取Cookie
@RequestMapping("/getCookie")
//8. 传统的得到Cookie
//注:使用servlet
public String getCookie(HttpServletRequest request){
Cookie[] cookies = request.getCookies();
// for (Cookie cookie : cookies){
// log.error(cookie.getName() + ":" + cookie.getValue());
// }
return "getCookie";
}
@RequestMapping("/getOneCookie")
//注:使用spring更简单的得到 单个cookie
public String getOneCookie(@CookieValue("zhangsan") String val){
return "cookie +" + val;
}
获取Header
@RequestMapping("/getHeader")
//9. 传统的得到单个header
//注:使用servlet
public String getHeader(HttpServletRequest request){
String userAgent = request.getHeader("User-agent");
return userAgent;
}
@RequestMapping("/getSpringHeader")
//注:使用spring得到单个header
public String getSpringHeader(@RequestHeader("User-Agent") String userAgent){
return userAgent;
}
设置Session
@RequestMapping("/setSession")
//10. 设置session
//注:servlet和spring设置的方法一样 都是通过HttpServletRequest设置
public String setSession(HttpServletRequest request){
HttpSession session = request.getSession(true);
if (session != null){
session.setAttribute("username","spring");
}
return (String) session.getAttribute("username");
}
读取Session
@RequestMapping("/getSession")
//11. 读取session
//注:普通的使用servlet读取
public String getSession(HttpServletRequest request){
HttpSession session = request.getSession(false);
if (session != null && session.getAttribute("username") != null){
return (String) session.getAttribute("username");
}else {
return "无session信息";
}
}
@RequestMapping("/getSpringSession")
//注:使用spring更简单的读取session
public String getSpringSession(@SessionAttribute(value = "username",required = false) String username){
return username;
}
文章来源地址https://www.toymoban.com/news/detail-760178.html
文章来源:https://www.toymoban.com/news/detail-760178.html
到了这里,关于SpringMVC---获取参数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!