如何通过SpringMVC获取前端请求数据并应用三个作用域?

摘要:获取请求数据 使用原生的Servlet API获取请求数据处理注册请求 @PostMapping("registeruser") public String register(
获取请求数据 使用原生的Servlet API获取请求数据 // 处理注册请求 @PostMapping("/register/user") public String register(HttpServletRequest request, HttpSession session, HttpServletResponse resp) { // 获取请求参数 // HttpServletRequest\HttpSession\HttpServletResponse 都属于Servlet API,Spring MVC会自动将它们注入到方法参数中 String username = request.getParameter("username"); String password = request.getParameter("password"); return "success"; } @RequestParam注解 @RequestParam的作用:将请求参数与方法上的形参映射 @PostMapping("/register/user/2") public String register2( // @RequestParam注解用于将请求参数绑定到方法参数上,value属性指定请求参数的名称,参数名可以和请求参数名不同 // 可以自动将请求参数转换为方法参数的类型,例如将字符串转换为整数、日期等 @RequestParam("username") String username, @RequestParam("password") String password) { return "success"; } @RequestParam的required和defaultValue属性 required属性:设置该参数是否是必须的。默认true,默认参数是必须的,如果前端没有提交这个参数,则报错。如果设置为false。则不会报错。 defaultValue属性:给参数设置默认值,如果前端没传这个参数,则会使用默认值。 @PostMapping("/register/user/2") public String register2( // @RequestParam注解用于将请求参数绑定到方法参数上,value属性指定请求参数的名称,参数名可以和请求参数名不同 // 可以自动将请求参数转换为方法参数的类型,例如将字符串转换为整数、日期等 @RequestParam("username") String username, @RequestParam("password") String password, @RequestParam(value = "age",required = false,defaultValue = "20") Integer age) { return "success"; } 依靠控制器方法上的形参名接收 如果请求的参数名和控制器方法上的形参名保持一致。那么 @RequestParam注解可以省略。 如果没对应上,则值为null。 @PostMapping("/register/user/3") public String register3(String username, String password) { // 这种方式要求请求参数的名称必须与方法参数的名称一致,Spring MVC会自动将请求参数绑定到方法参数上 return "success"; } 使用POJO类/JavaBean接收参数 要求:POJO类/JavaBean的属性名必须和请求参数的参数名保持一致。 底层原理使用反射机制。并且调用JavaBean的set方法,set方法的方法名是关键,springMVC是通过set方法的方法名将对应的参数注入到JavaBean中的。 @PostMapping("/register/user/4") public String register4(User user) { // 这种方式要求请求参数的名称必须与User类的属性名称一致,Spring MVC会自动将请求参数绑定到User对象的属性上 return "success"; } RequestHeader注解 作用:将请求头信息映射到方法的形参上。 和@RequestParam注解功能相似。
阅读全文