Comment Springboot interagit avec le front-end

Par exemple, nous avons ce code front-end, utilisant la bibliothèque jQuery pour envoyer une requête GET :

function updateUser(user) {
    $.ajax({
        url: '/user',
        type: 'get',
        data: user,
        success: function(result) {
            console.log(result);
        },
        error: function(xhr, status, error) {
            console.error('Error updating user:', error);
        }
    });
}
  1. @RequestParam

L'annotation @RequestParam est utilisée pour obtenir des paramètres d'URL ou des données de formulaire, et obtenir des valeurs de paramètres en spécifiant le nom et le type de paramètre. Par exemple:

@GetMapping("/user")
public String getUser(@RequestParam("id") Long id) {
    User user = userService.getUserById(id);
    return user.toString();
}

Dans l'exemple ci-dessus, l'annotation @RequestParam("id") signifie obtenir le paramètre nommé id, le convertir en type Long, puis utiliser le paramètre pour interroger les données utilisateur.

  1. @PathVariable

L'annotation @PathVariable est utilisée pour obtenir les paramètres de chemin dans l'URL et obtenir la valeur du paramètre en spécifiant le nom et le type du paramètre. Par exemple:

@GetMapping("/user/{id}")
public String getUser(@PathVariable("id") Long id) {
    User user = userService.getUserById(id);
    return user.toString();
}

Dans l'exemple ci-dessus, l'annotation @PathVariable("id") signifie obtenir le paramètre de chemin nommé id, le convertir en type Long, puis utiliser ce paramètre pour interroger les données utilisateur.

  1. @RequestBody

L'annotation @RequestBody est utilisée pour obtenir des données dans le corps de la requête HTTP. Elle est généralement utilisée pour traiter les requêtes POST ou PUT. Elle convertit automatiquement le corps de la requête en objet Java en spécifiant le type de paramètre. Par exemple:

@PostMapping("/user")
public String createUser(@RequestBody User user) {
    userService.createUser(user);
    return "success";
}

Dans l'exemple ci-dessus, l'annotation @RequestBody signifie obtenir les données dans le corps de la requête HTTP, les convertir en un objet User, puis utiliser l'objet pour créer des données utilisateur.

  1. HttpServletRequest

HttpServletRequest est une interface de l'API Java Servlet via laquelle des informations relatives aux requêtes HTTP peuvent être obtenues, notamment les paramètres de requête, les en-têtes de requête, les corps de requête, etc. Par exemple:

@PostMapping("/user")
public StringcreateUser(HttpServletRequest request) {
    String name = request.getParameter("name");
    String email = request.getParameter("email");
    User user = newUser(name, email);
    userService.createUser(user);
    return "success";
}

Dans l'exemple ci-dessus, la méthode request.getParameter() est utilisée pour obtenir les paramètres de requête et créer un objet User, qui est ensuite utilisé pour créer des données utilisateur.

  1. @ModelAttribute

L'annotation @ModelAttribute est utilisée pour lier les paramètres de requête à l'objet modèle et les ajouter au modèle, par exemple :

@GetMapping("/user")
public String getUser(@ModelAttribute("user") User user) {
    userService.getUser(user);
    return "user";
}

Dans l'exemple ci-dessus, l'annotation @ModelAttribute("user") indique que les paramètres de requête sont liés à l'objet User nommé "user" et ajoutés au modèle.

  1. @RequestHeader

L'annotation @RequestHeader est utilisée pour obtenir les données dans l'en-tête de la requête HTTP et obtenir la valeur du paramètre dans l'en-tête de la requête en spécifiant le nom et le type du paramètre, par exemple :

@GetMapping("/user")
public String getUser(@RequestHeader("User-Agent") String userAgent) {
    log.info("User-Agent: {}", userAgent);
    return "user";
}

Dans l'exemple ci-dessus, l'annotation @RequestHeader("User-Agent") signifie obtenir la valeur du paramètre nommé "User-Agent" dans l'en-tête de la requête HTTP et l'imprimer dans le journal.

  1. @CookieValue

L'annotation @CookieValue est utilisée pour obtenir la valeur du Cookie dans la requête HTTP. La valeur du Cookie est obtenue en spécifiant le nom et le type du paramètre, par exemple :

@GetMapping("/user")
public String getUser(@CookieValue("session_id") String sessionId) {
    log.info("Session ID: {}", sessionId);
    return "user";
}

Dans l'exemple ci-dessus, l'annotation @CookieValue("session_id") signifie obtenir la valeur du Cookie nommée "session_id" dans la requête HTTP et l'imprimer dans le journal.

  1. API de servlets

Spring Boot est développé sur la base de l'API Servlet, vous pouvez donc également utiliser les méthodes fournies par l'API Servlet pour obtenir des données de requête et de réponse, par exemple :

@PostMapping("/user")
public StringcreateUser(HttpServletRequest request, HttpServletResponse response) {
    String name = request.getParameter("name");
    String email = request.getParameter("email");
    User user = newUser(name, email);
    userService.createUser(user);
    response.setStatus(HttpServletResponse.SC_CREATED);
    return "success";
}

Dans l'exemple ci-dessus, la méthode request.getParameter() est utilisée pour obtenir les paramètres de requête et créer un objet User, qui est ensuite utilisé pour créer des données utilisateur. Dans le même temps, utilisez la méthode Response.setStatus() pour définir le code d'état de la réponse sur 201, indiquant que la création a réussi.

En bref, Spring Boot offre plusieurs façons d'obtenir les données transmises par le front-end, et les développeurs peuvent choisir la manière appropriée de traiter les données de demande et de réponse en fonction de la situation réelle. Dans le même temps, l'utilisation de Spring Boot peut également intégrer facilement des composants et des bibliothèques tiers pour améliorer l'efficacité du développement et la qualité du code.

Guess you like

Origin blog.csdn.net/weixin_51418964/article/details/129231974