文章目录 1.基本介绍 2.@PathVariable 路径参数获取信息 1.代码实例 1.index.html 2.ParameterController.java 3.测试 2.细节说明 3.@RequestHeader 请求头获取信息 1.代码实例 1.index.html 2.ParameterController.java 3.测试 2.细节说明 4.@RequestParameter 请求获取参数信息 1.代码实例 1.index.html 2.ParameterController.java 3.测试 2.细节说明 5.@CookieValue cookie获取值 1.代码实例 1.index.html 2.ParameterController.java 3.测试 2.细节说明 6.@RequestBody 处理json请求,post请求体获取信息 1.代码实例 1.index.html 2.ParameterController.java 3.测试 7.@RequestAttribute 请求域获取信息 1.代码实例 1.RequestController.java 2.配置视图解析器 application.yml 3.测试 8.@SessionAttribute session域获取信息 1.代码实例 1.SessionController.java 2.配置视图解析器(同上) 3.测试 9.复杂参数 1.代码实例 1.RequestController.java 2.测试 2.HttpServletResponse给浏览器设置cookie
1.基本介绍
2.@PathVariable 路径参数获取信息
1.代码实例
1.index.html
<! DOCTYPE html >
< html lang = " en" >
< head> < meta charset = " UTF-8" > < title> Title</ title>
</ head>
< body>
< h1> 基本注解</ h1>
< hr/>
< a href = " /monster/100/king" > @PathVariable-路径变量:/monster/100/king</ a>
</ body>
</ html>
2.ParameterController.java
package com. sun. springboot. controller ; import org. springframework. web. bind. annotation. GetMapping ;
import org. springframework. web. bind. annotation. PathVariable ;
import org. springframework. web. bind. annotation. RestController ; import java. util. Map ;
@RestController
public class ParameterController { @GetMapping ( "/monster/{id}/{name}" ) public String pathVariable ( @PathVariable ( "id" ) Integer id, @PathVariable ( "name" ) String name, @PathVariable Map < String , String > map) { System . out. println ( "id:" + id + " name:" + name) ; for ( Map. Entry < String , String > entry : map. entrySet ( ) ) { System . out. println ( "key:" + entry. getKey ( ) + " value: " + entry. getValue ( ) ) ; } return "success" ; } }
3.测试
2.细节说明
@PathVariable(“xxx”)必须跟{xxx}相对应 可以将所有的路径参数放到map中 @PathVariable Map<String, String> map
3.@RequestHeader 请求头获取信息
1.代码实例
1.index.html
<! DOCTYPE html >
< html lang = " en" >
< head> < meta charset = " UTF-8" > < title> Title</ title>
</ head>
< body>
< h1> 基本注解</ h1>
< hr/>
< a href = " /requestHeader" > @RequestHeader-获取请求头信息</ a>
</ body>
</ html>
2.ParameterController.java
package com. sun. springboot. controller ; import org. springframework. web. bind. annotation. GetMapping ;
import org. springframework. web. bind. annotation. RequestHeader ;
import org. springframework. web. bind. annotation. RestController ; import java. util. Map ;
@RestController
public class ParameterController { @GetMapping ( "/requestHeader" ) public String requestHeader ( @RequestHeader ( "host" ) String host, @RequestHeader Map < String , String > header) { System . out. println ( "host:" + host) ; System . out. println ( header) ; return "success" ; } }
3.测试
2.细节说明
请求头的信息都是以key - value的形式存储的 可以通过@RequestHeader(“xxx”)来获取xxx对应的value 也可以通过@RequestHeader Map<String, String> header将所有的key - value都封装到map中
4.@RequestParameter 请求获取参数信息
1.代码实例
1.index.html
<! DOCTYPE html >
< html lang = " en" >
< head> < meta charset = " UTF-8" > < title> Title</ title>
</ head>
< body>
< h1> 基本注解</ h1>
< hr/>
< a href = " /hi?hobby=打篮球&hobby=踢球" > @RequestParam-请求参数</ a>
</ body>
</ html>
2.ParameterController.java
package com. sun. springboot. controller ; import org. springframework. web. bind. annotation. * ; import java. util. List ;
@RestController
public class ParameterController { @GetMapping ( "/hi" ) public String hi ( @RequestParam ( value = "name" , defaultValue = "孙显圣" ) String name, @RequestParam ( "hobby" ) List < String > list) { System . out. println ( "name:" + name) ; System . out. println ( list) ; return "success" ; } }
3.测试
2.细节说明
请求参数是可以设置默认值的,使用defaultValue属性即可 请求参数还可以将同名的结果封装到List中 请求参数也可以使用@RequestParameter Map<String, String> map 将所有参数封装到map中,但是如果有同名的结果只会得到第一个,因为map的key是唯一的
5.@CookieValue cookie获取值
1.代码实例
1.index.html
<! DOCTYPE html >
< html lang = " en" >
< head> < meta charset = " UTF-8" > < title> Title</ title>
</ head>
< body>
< h1> 基本注解</ h1>
< hr/>
< a href = " /cookie" > @CookieValue-获取cookie的值</ a>
</ body>
</ html>
2.ParameterController.java
package com. sun. springboot. controller ; import org. springframework. web. bind. annotation. * ; import javax. servlet. http. Cookie ;
import javax. servlet. http. HttpServletRequest ;
@RestController
public class ParameterController { @GetMapping ( "/cookie" ) public String cookie ( @CookieValue ( value = "cookie_key" , required = false ) String cookie_value, @CookieValue ( value = "username" , required = false ) Cookie cookie, HttpServletRequest request) { Cookie [ ] cookies = request. getCookies ( ) ; for ( Cookie cookie1 : cookies) { System . out. println ( cookie1) ; } System . out. println ( cookie_value) ; System . out. println ( "name:" + cookie. getName ( ) + " value: " + cookie. getValue ( ) ) ; return "success" ; } }
3.测试
2.细节说明
@CookieValue可以根据后面要封装的参数的类型来获取指定的值,如果后面的类型是Cookie类型则会获取一个Cookie对象并封装进入,如果是String类型则会获取Cookie的value来进行封装 还可以通过Servlet原生api的request来获取所有的cookie @CookieValue中有属性required默认为true,意为必须存在,否则报错,如果设置为false,则如果获取不到则为null
6.@RequestBody 处理json请求,post请求体获取信息
1.代码实例
1.index.html
<! DOCTYPE html >
< html lang = " en" >
< head> < meta charset = " UTF-8" > < title> Title</ title>
</ head>
< body>
< h1> 基本注解</ h1>
< hr/>
< form action = " /requestBody" method = " post" > < input type = " text" name = " username" > < br> < input type = " text" name = " password" > < br> < input type = " submit" value = " submit" >
</ form>
</ body>
</ html>
2.ParameterController.java
package com. sun. springboot. controller ; import org. springframework. web. bind. annotation. * ;
@RestController
public class ParameterController { @PostMapping ( "requestBody" ) public String getRequestBody ( @RequestBody String requestBody) { System . out. println ( requestBody) ; return "success" ; } }
3.测试
7.@RequestAttribute 请求域获取信息
1.代码实例
1.RequestController.java
package com. sun. springboot. controller ; import org. springframework. stereotype. Controller ;
import org. springframework. web. bind. annotation. GetMapping ;
import org. springframework. web. bind. annotation. RequestAttribute ;
import org. springframework. web. bind. annotation. ResponseBody ; import javax. servlet. http. HttpServletRequest ;
@Controller
public class RequestController { @GetMapping ( "/login" ) public String login ( HttpServletRequest request) { request. setAttribute ( "name" , "sun" ) ; request. setAttribute ( "age" , 13 ) ; return "forward:/ok" ; } @ResponseBody @GetMapping ( "/ok" ) public String ok ( @RequestAttribute ( value = "name" , required = false ) String name) { System . out. println ( "name: " + name) ; return "success" ; }
}
2.配置视图解析器 application.yml
spring : mvc : view : suffix : .html prefix : /
3.测试
8.@SessionAttribute session域获取信息
1.代码实例
1.SessionController.java
package com. sun. springboot. controller ; import org. springframework. stereotype. Controller ; import org. springframework. web. bind. annotation. GetMapping ; import org. springframework. web. bind. annotation. ResponseBody ; import org. springframework. web. bind. annotation. SessionAttribute ; import javax. servlet. http. HttpServletRequest ; @Controller public class SessionController { @GetMapping ( "/login" ) public String login ( HttpServletRequest request) { request. getSession ( ) . setAttribute ( "session" , "session_value" ) ; return "forward:/ok" ; } @ResponseBody @GetMapping ( "/ok" ) public String ok ( @SessionAttribute ( value = "session" ) String value) { System . out. println ( "session: " + value) ; return "success" ; } }
2.配置视图解析器(同上)
3.测试
9.复杂参数
1.代码实例
1.RequestController.java
package com. sun. springboot. controller ; import org. springframework. stereotype. Controller ;
import org. springframework. ui. Model ;
import org. springframework. web. bind. annotation. GetMapping ;
import org. springframework. web. bind. annotation. RequestAttribute ;
import org. springframework. web. bind. annotation. ResponseBody ; import javax. servlet. http. HttpServletResponse ;
import java. util. Map ;
@Controller
public class RequestController { @GetMapping ( "/login" ) public String login ( Map < String , Object > map, Model model, HttpServletResponse response) { map. put ( "user" , "sun" ) ; map. put ( "job" , "工程师" ) ; model. addAttribute ( "sal" , 1000 ) ; return "forward:/ok" ; } @ResponseBody @GetMapping ( "/ok" ) public String ok ( @RequestAttribute ( "user" ) String user, @RequestAttribute ( "job" ) String job, @RequestAttribute ( "sal" ) Integer sal) { System . out. println ( "user:" + user + " job:" + job + " sal:" + sal) ; return "success" ; }
}
2.测试
2.HttpServletResponse给浏览器设置cookie
1.代码实例
package com. sun. springboot. controller ; import org. springframework. stereotype. Controller ;
import org. springframework. web. bind. annotation. CookieValue ;
import org. springframework. web. bind. annotation. GetMapping ;
import org. springframework. web. bind. annotation. ResponseBody ; import javax. servlet. http. Cookie ;
import javax. servlet. http. HttpServletResponse ;
@Controller
public class RequestController { @GetMapping ( "/login" ) public String login ( HttpServletResponse response) { Cookie cookie = new Cookie ( "cookie_name" , "cookie_value" ) ; response. addCookie ( cookie) ; return "redirect:/ok" ; } @ResponseBody @GetMapping ( "/ok" ) public String ok ( @CookieValue ( "cookie_name" ) Cookie cookie) { System . out. println ( "key:" + cookie. getName ( ) + " value:" + cookie. getValue ( ) ) ; return "success" ; }
}
2.测试