Heim >Java >javaLernprogramm >Welche Annotationen verwendet SpringBoot zum Empfangen von Parametern?
1. Grundlegende Einführung Anwendungsbeispiel für den Empfang von Parametern
1. Demonstrieren Sie verschiedene Möglichkeiten zum Senden von Daten/Parametern an den Server und wie der Server Anmerkungen verwendet, um sie zu empfangen /parameters an den Server und wie der Server sie verwendet. Empfangen von Anmerkungen<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <h2>hello, llp</h2> 基本注解: <hr/> <a href="/monster/200/jack" rel="external nofollow" >@PathVariable-路径变量 monster/200/jack</a><br/><br/> </body> </html>
@PathVariable. Verwenden Sie
Demo @PathVariable. Erstellen Sie srcmainjavacomllpspringbootcontrollerParameterController.java. Schließen Sie den Test ab e
@Request Header verwendet
, um die Verwendung von @RequestHeader zu demonstrieren und den Test abzuschließen√ Ändern Sie index.html@RestController public class ParameterController { /** * /monster/{id}/{name} 解读 * 1. /monster/{id}/{name} 构成完整请求路径 * 2. {id} {name} 就是占位变量 * 3. @PathVariable("name"): 这里name 和{name} 命名保持一致 * 4. String name_ 这里自定义,和{name}命名无关 * 5. @PathVariable Map<String, String> map 把所有传递的值传入map * 6. 可以看下@PathVariable源码 */ @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); System.out.println("name-" + name); System.out.println("map-" + map); return "success"; } }
@RequestParam Verwenden Sie
Demo @RequestParam verwenden, ParameterController.java ändern, Test abschließen√ Index .html ändern<a href="/requestHeader" rel="external nofollow" >@RequestHeader-获取Http请求头 </a><br/><br/>√ ParameterController.java ändern
/** * @RequestHeader("Host") 获取http请求头的 host信息 * @RequestHeader Map<String, String> header: 获取到http请求的所有信息 */ @GetMapping("/requestHeader") public String requestHeader(@RequestHeader("host") String host, @RequestHeader Map<String, String> header, @RequestHeader("accept") String accept) { System.out.println("host-" + host); System.out.println("header-" + header); System.out.println("accept-" + accept); return "success"; }@CookieValue Verwenden Sie , um die Verwendung von @CookieValue zu demonstrieren, ändern Sie ParameterController.java , schließen Sie den Test ab. Ändern Sie index.html √ Ändern Sie index.html
<a href="/hi?name=wukong&fruit=apple&fruit=pear&id=300&address=北京" rel="external nofollow" >@RequestParam-获取请求参数</a><br/><br/>√ Ändern Sie ParameterController.java
/** * @param username wukong * @param fruits List<String> fruits 接收集合 [apple, pear] * @param paras Map<String, String> paras 如果我们希望将所有的请求参数的值都获取到, * 可以通过@RequestParam Map<String, String> paras这种方式 * 一次性的接收所有的请求参数 {name=wukong, fruit=apple, id=300, address=北京} * 如果接收的某个参数中有多个之值比如这里fruits是一个集合,从map中只能拿到一个 * 可以理解map底层会将相同的key的value值进行覆盖 * @return * @RequestParam */ @GetMapping("/hi") public String hi(@RequestParam(value = "name") String username, @RequestParam("fruit") List<String> fruits, @RequestParam Map<String, String> paras) { //username-wukong System.out.println("username-" + username); //fruit-[apple, pear] System.out.println("fruit-" + fruits); //paras-{name=wukong, fruit=apple, id=300, address=北京} System.out.println("paras-" + paras); return "success"; }
Demo @RequestAttribute @SessionAttribute wird verwendet, erstellen Sie com/hspedu/web/controller/RequestController.java, schließen Sie den Test ab
√ index.html ändern
<a href="/cookie" rel="external nofollow" >@CookieValue-获取cookie值</a><br/><br/>
√ RequestController.java erstellen
3. Komplexe Parameter
1. Grundlegende Einführung
In der Entwicklung unterstützt SpringBoot auch komplexe Parameter
Map, Model, Errors/BindingResult, RedirectAttributes, ServletResponse, SessionStatus, UriComponentsBuilder, ServletUriComponentsBuilder, HttpSession
Map- und Modelldaten werden im Anforderungsfeld und im zugrunde liegenden request.setAttribute() platziert
RedirectAttributes leitet Daten weiter 2. Anwendungsbeispiele für komplexe Parameter####1 Beschreibung: Demonstrieren Sie die Verwendung komplexer Parameter, konzentrieren Sie sich auf: Karte, Modell, ServletResponse
/** * 因为我的浏览器目前没有cookie,我们可以自己设置cookie[技巧还是非常有用] * 如果要测试,可以先写一个方法,在浏览器创建对应的cookie * 说明 1. value = "cookie_key" 表示接收名字为 cookie_key的cookie * 2. 如果浏览器携带来对应的cookie , 那么 后面的参数是String ,则接收到的是对应对value * 3. 后面的参数是Cookie ,则接收到的是封装好的对应的cookie */ @GetMapping("/cookie") public String cookie(@CookieValue(value = "cookie_key", required = false) String cookie_value, HttpServletRequest request, @CookieValue(value = "username", required = false) Cookie cookie) { System.out.println("cookie_value-" + cookie_value); if (cookie != null) { System.out.println("username-" + cookie.getName() + "-" + cookie.getValue()); } System.out.println("-------------------------"); Cookie[] cookies = request.getCookies(); for (Cookie cookie1 : cookies) { System.out.println(cookie1.getName() + "=>" + cookie1.getValue()); } return "success"; }
2. Benutzerdefinierte Objektparameter – Anwendungsbeispiele
<hr/> <h2>测试@RequestBody获取数据: 获取POST请求体</h2> <form action="/save" method="post"> 姓名: <input name="name"/> <br> 年龄: <input name="age"/> <br/> <input type="submit" value="提交"/> </form>
/** * @RequestBody 是整体取出Post请求内容 */ @PostMapping("/save") public String postMethod(@RequestBody String content) { System.out.println("content-" + content); return "success"; }
Das obige ist der detaillierte Inhalt vonWelche Annotationen verwendet SpringBoot zum Empfangen von Parametern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!