Heim > Java > javaLernprogramm > Welche Annotationen verwendet SpringBoot zum Empfangen von Parametern?

Welche Annotationen verwendet SpringBoot zum Empfangen von Parametern?

WBOY
Freigeben: 2023-05-10 15:49:33
nach vorne
1817 Leute haben es durchsucht

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

Erstellen Sie srcmainresourcesstaticindex.html

<!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>
Nach dem Login kopieren

@PathVariable. Verwenden Sie

Demo @PathVariable. Erstellen Sie srcmainjavacomllpspringbootcontrollerParameterController.java. Schließen Sie den Test ab e

@Request Header verwendet Welche Annotationen verwendet SpringBoot zum Empfangen von Parametern?

, 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";
    }
}
Nach dem Login kopieren

@RequestParam Verwenden Sie Welche Annotationen verwendet SpringBoot zum Empfangen von Parametern?

Demo @RequestParam verwenden, ParameterController.java ändern, Test abschließen

√ Index .html ändern

<a href="/requestHeader" rel="external nofollow" >@RequestHeader-获取Http请求头 </a><br/><br/>
Nach dem Login kopieren

√ 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";
}
Nach dem Login kopieren

@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/>
Nach dem Login kopieren
Welche Annotationen verwendet SpringBoot zum Empfangen von Parametern?√ Ä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";
}
Nach dem Login kopieren

@RequestAttribute und verwenden Sie @SessionAttribute

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/>
Nach dem Login kopieren

√ RequestController.java erstellen

3. Komplexe Parameter

1. Grundlegende Einführung

In der Entwicklung unterstützt SpringBoot auch komplexe Parameter Welche Annotationen verwendet SpringBoot zum Empfangen von Parametern?

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";
}
Nach dem Login kopieren
Welche Annotationen verwendet SpringBoot zum Empfangen von Parametern?

4. Benutzerdefinierte Objektparameter – automatische Kapselung

unterstützt Kaskadenverpackung

  • 2. Benutzerdefinierte Objektparameter – Anwendungsbeispiele

  • 1. Anforderungsbeschreibung: Selbstdemonstration Definieren Sie die Verwendung von Objektparametern und vervollständigen Sie die automatische Kapselung und Typkonvertierung
  • 2. Code-Implementierung

    1. Erstellen Sie srcmainresourcesstaticsave.html
  • <hr/>
    <h2>测试@RequestBody获取数据: 获取POST请求体</h2>
    <form action="/save" method="post">
        姓名: <input name="name"/> <br>
        年龄: <input name="age"/> <br/>
        <input type="submit" value="提交"/>
    </form>
    Nach dem Login kopieren
  • 2. Ändern Sie srcmainjavacomllpspringbootcontrollerParameterController.java

    /**
     * @RequestBody 是整体取出Post请求内容
     */
    @PostMapping("/save")
    public String postMethod(@RequestBody String content) {
        System.out.println("content-" + content);
        return "success";
    }
    Nach dem Login kopieren

    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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage