L'utilisation de 5 annotations couramment utilisées dans springmvc
Cinq annotations courantes de springmvc : 1. @RequestMapping, qui est une annotation utilisée pour traiter le mappage d'adresse de requête ; 2. @RequestParam, qui est utilisé pour mapper les données de la zone de paramètres de requête aux paramètres de traitement de la fonction ; méthode ; 3. @PathVariable, utilisée pour définir les variables de requête.
@RequestMapping
est une annotation utilisée pour gérer le mappage d'adresses de requête
est applicable aux classes et aux méthodes. Utilisé sur une classe, cela signifie que toutes les méthodes de la classe qui répondent aux requêtes utilisent cette adresse comme chemin parent.
Attributs
value
: Spécifiez l'adresse réelle de la demande. La valeur peut être une valeur spécifique ordinaire, ou elle peut être spécifiée comme un type de valeur contenant une certaine variable (URI). Modèles de modèle avec variables de chemin)
Peut être spécifié comme type de valeur contenant des expressions régulières (Modèles de modèle URI avec expressions régulières) method
: Spécifiez le type de méthode de la requête, GET, POST, PUT, DELETE , etc. consumes
: Spécifiez Traiter le type de contenu de soumission (Content-Type) de la demande, tel que application/json, text/htmlproduces
: Spécifiez le type de contenu renvoyé, uniquement lorsque le Le type (Accepter) dans l'en-tête de la requête contient le type spécifié. Retour params
: La requête spécifiée doit contenir certaines valeurs de paramètres avant que cette méthode puisse la traiter headers
: La requête spécifiée doit contenir certaines valeurs. les valeurs d'en-tête spécifiées avant que cette méthode puisse traiter la demande
1.处理get请求: @RequestMapping(value = "index",method = RequestMethod.GET) 2.springboot错误处理(使用app客户端返回json格式,使用浏览器返回html错误页) @RequestMapping(produces = "text/html") 3.方法仅处理request Content-Type为“application/json”类型的请求 @RequestMapping(value = "/pets", consumes="application/json") 4.仅处理请求中包含了名为“myParam”,值为“myValue”的请求 @RequestMapping(value = "/pets/{petId}", params="myParam=myValue") 5.仅处理request的header中包含了指定“Refer”请求头和对应值为“http://www.rxy.com/”的请求 @RequestMapping(value = "/pets", headers="Referer=http://www.rxy.com/")
@RequestParam
est utilisée pour mapper les données de la zone de paramètre de demande aux paramètres de la méthode de traitement de fonction
Applicable à : paramètres de méthode
attributs
value/name
: les deux attributs font référence à des noms de paramètres, c'est-à-dire le nom du paramètre demandé (généralement l'attribut de nom de formulaire) required
: si c'est nécessaire, la valeur par défaut est true, indiquant que la requête doit avoir les paramètres correspondants, sinon une exception sera levée defaultValue
: Valeur par défaut, indiquant la valeur par défaut s'il n'y a pas de paramètre du même nom dans la requête . Lors de la définition de ce paramètre, require est automatiquement défini sur false
如果是原子类型,不管加没加注解,都必须有值,否则抛出异常,如果允许空值请使用包装类代替 index(@RequestParam Integer num){} 表示该参数必须传递,值允许为空 表示该参数非必须,如果不传则默认为0 getPageData(@RequestParam(name="pageNum",defaultValue="0") String pageNo, String pageSize)
@PathVariable
Utilisé pour mapper les variables de modèle dans l'URL de la requête aux paramètres de la méthode de traitement de la fonction, c'est-à-dire prendre. extrayez les variables dans le modèle uri en tant que paramètres
Applicable : paramètres de méthode
attributs
valeur : Spécifiez le nom de la variable du modèle d'URL. Si le nom est différent du nom du paramètre de méthode, vous. Vous devez le spécifier. Sinon, vous pouvez l'omettre.
@RequestMapping("/index/{id}") public String index(@PathVariable("id") String sdf){ System.out.println(sdf); return "index"; }
@ResponseBody
Cette annotation est utilisée pour renvoyer la méthode de Controller
L'objet, après avoir été converti au format spécifié via. approprié HttpMessageConverter
, est écrit dans la zone de données Response
de l'objet body
Par défaut, springmvc
est renvoyé sous la forme de json
(en utilisant le convertisseur jackson
)
est. applicable : Méthode, lorsque les données renvoyées ne sont pas une page avec des balises html, mais des données dans un autre format (comme json, xml, etc.), utilisez la
comparaison : @RequestBody
Convertissez le corps de la requête HTTP en un Objet HttpMessageConverter approprié
@ResponseBody
Renvoyer le contenu ou l'objet en tant que corps de réponse HTTP et appeler l'objet de conversion Adaptateur approprié pour HttpMessageConverter pour écrire dans le flux de sortie
@RequestBody
1. Cette annotation est utilisée pour la lecture. Les données de la partie du corps de la requête Request sont analysées à l'aide du HttpMessageConverter configuré par défaut du système, puis les données correspondantes sont liées à l'objet à renvoyer
2. Liez ensuite les données de l'objet renvoyées par HttpMessageConverter aux paramètres de la méthode dans le contrôleur
Applicable : paramètres de méthode, pour la requête Content-Type : application/json, application/xml doit utiliser cette annotation
Pour application/x-www-form-urlencoded, si la méthode de requête est mise, cette annotation est obligatoire,
Facultatif pour la méthode POST/GET (c'est-à-dire non obligatoire, car @RequestParam, @ModelAttribute peut également être traité)
Pour les données multipart/form, @RequestBody ne peut pas gérer les données dans ce format
Attribut : obligatoire : que cela soit obligatoire, la valeur par défaut est vraie, ce qui signifie que la requête doit avoir les paramètres correspondants, sinon une exception sera levée
Exemple : généralement le front-end utilisant cette annotation envoie une requête ajax, alors la partie requête est la suivante :
$.ajax({ type: "POST", url:"/role/saveRole", contentType:"application/json", data: JSON.stringify(_self.form)...
Remarque : contentType ne peut pas être omis, les données doivent être converties en chaîne json via stringify
Ensuite, la méthode correspondante peut être écrite comme this :
@RequestMapping(value = "/saveRole",method = RequestMethod.POST) public String saveRole(@RequestBody People requestJson) {}
Si le front-end transmet un tableau d'objets, alors le backend peut également utiliser List
s'applique à : les paramètres de la méthode
获取cookie中的JSESSIONID public String index(@CookieValue("JSESSIONID") String cookie){}
s'applique à : paramètres de la méthode
获取请求中Accept-Encoding值,返回gzip, deflate, br public String index(@RequestHeader("Accept-Encoding") String host){return host;}
@ExceptionHandler
注解在方法上,表示该方法用于处理特定的异常,处理范围是当前类,如果想要全局捕获异常,需要使用@ControllerAdvice
当一个Controller中有多个HandleException注解出现时,那么异常被哪个方法捕捉呢?这就存在一个优先级的问题
ExceptionHandler的优先级是:在异常的体系结构中,哪个异常与目标方法抛出的异常血缘关系越紧密,就会被哪个捕捉到
属性:value: 需要处理的异常类型集合(Class)
在当前Controller有两个处理异常的方法,当访问/index时,页面显示: json data
package com.rxy.controller; @Controller public class HelloController { @ExceptionHandler({ ArithmeticException.class }) @ResponseBody public String handleArithmeticException(Exception e) { e.printStackTrace(); return "json data"; } @ExceptionHandler({ IOException.class }) public String handleIOException(Exception e) { e.printStackTrace(); //返回错误页面 return "error"; } @RequestMapping("/index") public String index(){ int i = 10 / 0; return "index"; } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds





SpringBoot et SpringMVC sont tous deux des frameworks couramment utilisés dans le développement Java, mais il existe des différences évidentes entre eux. Cet article explorera les fonctionnalités et les utilisations de ces deux frameworks et comparera leurs différences. Tout d’abord, découvrons SpringBoot. SpringBoot a été développé par l'équipe Pivotal pour simplifier la création et le déploiement d'applications basées sur le framework Spring. Il fournit un moyen rapide et léger de créer des fichiers exécutables autonomes.

Quelle est la différence entre SpringBoot et SpringMVC ? SpringBoot et SpringMVC sont deux frameworks de développement Java très populaires pour la création d'applications Web. Bien qu’ils soient souvent utilisés séparément, les différences entre eux sont évidentes. Tout d’abord, SpringBoot peut être considéré comme une extension ou une version améliorée du framework Spring. Il est conçu pour simplifier le processus d'initialisation et de configuration des applications Spring afin d'aider les développeurs

SpringBoot et SpringMVC sont deux frameworks couramment utilisés dans le développement Java. Ils sont tous deux fournis par le framework Spring, mais ils présentent certaines différences dans leurs fonctions et leur utilisation. Cet article présentera respectivement les caractéristiques et les différences de SpringBoot et SpringMVC. 1. Caractéristiques de SpringBoot : Configuration simplifiée : SpringBoot simplifie considérablement le processus de configuration du projet grâce au principe de convention sur la configuration. Il peut configurer automatiquement les paramètres requis par le projet et les développeurs

La différence entre spring et springmvc : 1. Positionnement et fonctions ; 2. Fonctions de base 3. Champs d'application ; Introduction détaillée : 1. Positionnement et fonctions. Spring est un cadre de développement d'applications complet qui fournit l'injection de dépendances, la programmation orientée aspect, la gestion des transactions et d'autres fonctions. Il est conçu pour simplifier le développement d'applications au niveau de l'entreprise, et Spring MVC est le meilleur. Framework Spring. Un module qu'il contient est utilisé pour le développement d'applications Web et implémente le modèle MVC 2. Fonctions de base, etc.

Les différences entre springboot et springmvc sont les suivantes : 1. Différentes significations ; 2. Différentes configurations ; 3. Différentes dépendances ; 4. Différentes périodes de développement 6. Différentes façons d'implémenter la fonction d'empaquetage JAR ; Fonction fournie ; 8. Différentes fonctions ; 9. Différents supports de communauté et de documentation ;

Le rôle de l'intercepteur L'intercepteur de SpringMVC est similaire au filtre dans le développement de servlets, qui est utilisé pour pré-traiter et post-traiter le processeur. Les intercepteurs sont connectés en une chaîne dans un certain ordre, et cette chaîne est appelée chaîne d'intercepteurs (InterceptorChain). Lors de l'accès à une méthode ou à un champ intercepté, les intercepteurs de la chaîne d'intercepteurs seront appelés dans l'ordre dans lequel ils ont été précédemment définis. Les intercepteurs sont également la mise en œuvre spécifique des idées AOP. La différence entre les intercepteurs et les filtres : Filtre (Filter) Le domaine d'utilisation de l'intercepteur (Intercepter) fait partie de la spécification du servlet et peut être utilisé par n'importe quel projet JavaWeb.

Avec le développement d’Internet, les services Web deviennent de plus en plus courants. En tant qu'interface de programmation d'applications, JavaAPI lance constamment de nouvelles versions pour s'adapter aux différents scénarios d'application. En tant que framework open source populaire, SpringMVC peut nous aider à créer facilement des applications Web. Cet article explique en détail comment utiliser SpringMVC pour le traitement des services Web dans le développement JavaAPI, y compris la configuration de SpringMVC, l'écriture de contrôleurs et l'utilisation de

Analyser les similitudes et les différences entre SpringBoot et SpringMVC SpringBoot et SpringMVC sont des frameworks de développement très importants dans le domaine Java. Bien qu'ils fassent tous deux partie du framework Spring, il existe des différences évidentes en termes d'utilisation et de fonctionnalité. Cet article comparera SpringBoot et SpringMVC et analysera les similitudes et les différences entre eux. Tout d’abord, découvrons SpringBoot. PrintempsBo
