목차
@RequestMapping
@RequestParam
@PathVariable
@ResponseBody
속성
@ExceptionHandler
Java Java베이스 springmvc에서 일반적으로 사용되는 5가지 주석 사용

springmvc에서 일반적으로 사용되는 5가지 주석 사용

Jul 01, 2020 pm 05:25 PM
springmvc

springmvc의 5가지 공통 주석: 1. 요청 주소 매핑을 처리하는 데 사용되는 @RequestMapping 2. 요청 매개변수 영역 데이터를 함수 처리 방법의 매개변수에 매핑하는 데 사용되는 @RequestParam @PathVariable - 요청 변수를 전송하는 데 사용됩니다.

springmvc에서 일반적으로 사용되는 5가지 주석 사용

@RequestMapping

은 요청 주소 매핑을 처리하는 데 사용되는 주석입니다.
클래스 및 메서드에 적용됩니다. 클래스에서 사용된다는 것은 요청에 응답하는 클래스의 모든 메서드가 이 주소를 상위 경로로 사용한다는 의미입니다.

Attribute

value: 요청의 실제 주소를 지정합니다. 값은 일반적인 특정 값일 수도 있고 특정 변수를 포함하는 값 유형으로 지정할 수도 있습니다(URI 템플릿 패턴 경로 변수)value: 指定请求的实际地址,值可以是普通的具体值,可以指定为含有某变量的一类值(URI Template Patterns with Path Variables)
可以指定为含正则表达式的一类值(URI Template Patterns with Regular Expressions)
method: 指定请求的method类型,GET、POST、PUT、DELETE等
consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html
produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回
params: 指定request中必须包含某些参数值是,才让该方法处理
headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求

  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

用于将请求参数区数据映射到功能处理方法的参数上
适用:方法参数

属性

value/name: 两个属性都指代参数名字,即入参的请求参数名字(通常表单name属性)
required: 是否必须,默认是true,表示请求中一定要有相应的参数,否则将抛出异常
defaultValue: 默认值,表示如果请求中没有同名参数时的默认值,设置该参数时,自动将required设为false

  如果是原子类型,不管加没加注解,都必须有值,否则抛出异常,如果允许空值请使用包装类代替
  index(@RequestParam Integer num){}  表示该参数必须传递,值允许为空
  表示该参数非必须,如果不传则默认为0
  getPageData(@RequestParam(name="pageNum",defaultValue="0") String pageNo, String pageSize)
로그인 후 복사

@PathVariable

用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数
适用:方法参数

属性

value: 指定url模版变量名称,如果名称与方法参数名不一样,则需要指定,否则可省略

    @RequestMapping("/index/{id}")
         public String index(@PathVariable("id") String sdf){
           System.out.println(sdf);
           return "index";
     }
로그인 후 복사

@ResponseBody

该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区,默认springmvcjson形式返回(使用jackson转换器)
适用:方法,返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用
对比:@RequestBody 将HTTP请求正文转换为适合的HttpMessageConverter对象
@ResponseBody 정규 표현식이 포함된 값 유형(정규 표현식이 포함된 URI 템플릿 패턴)

메서드: 요청된 메소드 유형을 GET, POST, PUT, DELETE 등으로 지정합니다.

consumes: 요청 처리를 위해 제출된 콘텐츠 유형(Content-Type)을 지정합니다(예: application/json, text/html

produces: 반환된 콘텐츠 유형 지정, 요청 헤더의 (수락) 유형에 다음이 포함된 경우에만 지정된 유형만 반환됩니다

params: 지정된 요청은 메서드가 이를 처리하기 전에 특정 매개변수 값을 포함해야 합니다
headers: 지정된 요청에는 지정된 특정 매개변수가 포함되어야 합니다. 헤더 값을 사용하면 요청을 처리할 수 있습니다<br><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">         $.ajax({            type: &quot;POST&quot;,            url:&quot;/role/saveRole&quot;,            contentType:&quot;application/json&quot;,            data: JSON.stringify(_self.form)...</pre><div class="contentsignin">로그인 후 복사</div></div> <br>@RequestParam<br><br>은 요청 매개변수 영역 데이터를 함수 처리 방법의 매개변수에 매핑하는 데 사용됩니다.<br>적용 대상: 메소드 매개변수<br>

attributes


값/이름: 두 속성 모두 매개변수 이름, 즉 입력된 요청 매개변수의 이름을 나타냅니다(일반적으로 양식 이름 속성)

필수 code>: 필요한지 여부에 관계없이 기본값은 요청에 해당 매개변수가 있어야 함을 나타내는 true입니다. 그렇지 않으면 예외가 발생합니다.<p><code>defaultValue: 기본값, 없는 경우 기본값을 나타냅니다. 이 매개변수를 설정하면 필수가 자동으로 false로 설정됩니다

@RequestMapping(value = "/saveRole",method = RequestMethod.POST)
public String saveRole(@RequestBody People requestJson) {}
로그인 후 복사

@PathVariable

사용 요청 URL의 템플릿 변수를 함수 처리 방법의 매개변수, 즉 take에 매핑합니다. URI 템플릿의 변수를 매개변수
적용 대상: 메서드 매개변수

속성

값: 이름이 메서드 매개변수 이름과 동일한 경우 URL 템플릿 변수 이름을 지정합니다. 다르면 지정해야 합니다. 그렇지 않으면 생략 가능

获取cookie中的JSESSIONID
public String index(@CookieValue("JSESSIONID") String cookie){}
로그인 후 복사
@ResponseBody🎜🎜이 주석은 Controller의 메서드에서 반환된 개체를 적절한 HttpMessageConverter를 통해 지정된 개체로 변환하는 데 사용됩니다. 형식을 지정한 후 , Response 객체의 body 데이터 영역에 씁니다. 기본적으로 springmvcjson 형식으로 반환합니다. (jackson 변환기 사용) 🎜적용 대상: 메서드, 반환된 데이터가 html 태그가 있는 페이지가 아니라 다른 형식(예: json, xml 등)의 데이터인 경우 , 🎜Contrast: @RequestBody HTTP 요청 본문을 적합한 HttpMessageConverter 개체로 변환🎜@<code>ResponseBody 콘텐츠 또는 개체를 HTTP 응답 본문으로 반환하고 어댑터 변환을 호출합니다. HttpMessageConverter가 출력 스트림에 쓰기에 적합한 개체🎜🎜@RequestBody 🎜🎜1. 이 주석은 요청 요청의 본문 부분을 읽고 시스템의 기본 구성 HttpMessageConverter를 사용하여 이를 구문 분석한 다음 해당 데이터를 개체에 바인딩하는 데 사용됩니다. 🎜2. 그런 다음 HttpMessageConverter에서 반환된 개체 데이터를 컨트롤러에서 메서드의 매개 변수로 설정합니다. 🎜적용 대상: 메서드 매개 변수, 요청의 Content-Type: application/json, application/xml 이 주석을 사용하세요🎜application/x-www-form-urlencoded의 경우 요청 메서드가 put이면 필요합니다. 🎜 POST/GET 메서드의 경우 선택 사항(즉, @RequestParam, @ModelAttribute도 사용할 수 있으므로 필요하지 않음) 처리됨) 🎜 multipart/form-data의 경우 @RequestBody는 이 형식의 데이터를 처리할 수 없습니다. 🎜 속성: 필수: 필요합니까? 기본값은 true입니다. 이는 요청에 해당 매개변수가 있어야 함을 의미합니다. 그렇지 않으면 예외가 발생합니다. : 일반적으로 이 주석을 사용하는 프런트 엔드는 ajax 요청을 보내고 요청 부분은 다음과 같습니다. 🎜
获取请求中Accept-Encoding值,返回gzip, deflate, br
public String index(@RequestHeader("Accept-Encoding") String host){return host;}
로그인 후 복사
로그인 후 복사
🎜참고: contentType은 생략할 수 없으며, 데이터는 stringify를 통해 json 문자열로 변환되어야 합니다🎜그러면 해당 메서드는 다음과 같이 작성할 수 있습니다. 이것:🎜
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";
    }

}
로그인 후 복사
로그인 후 복사
🎜프런트 엔드가 객체 배열을 전달하면 백엔드도 List를 사용하여 이를 직접 받아들일 수 있습니다. 이는 목록 데이터를 정의하는 가장 실용적인 방법입니다 🎜🎜@CookieValue🎜🎜 요청 헤더의 쿠키 값을 메소드의 매개변수에 바인딩할 수 있습니다. 🎜적용 대상: 메소드 매개변수 🎜rrreee🎜@RequestHeader🎜🎜 요청 헤더 부분의 값을 메소드의 매개변수에 바인딩할 수 있습니다.🎜적용 대상: 메소드 매개변수🎜
获取请求中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";
    }

}
로그인 후 복사
로그인 후 복사

위 내용은 springmvc에서 일반적으로 사용되는 5가지 주석 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

SpringBoot와 SpringMVC의 비교 및 ​​차이점 분석 SpringBoot와 SpringMVC의 비교 및 ​​차이점 분석 Dec 29, 2023 am 11:02 AM

SpringBoot와 SpringMVC는 모두 Java 개발에서 일반적으로 사용되는 프레임워크이지만 둘 사이에는 몇 가지 분명한 차이점이 있습니다. 이 기사에서는 이 두 프레임워크의 기능과 용도를 살펴보고 차이점을 비교할 것입니다. 먼저 SpringBoot에 대해 알아봅시다. SpringBoot는 Spring 프레임워크를 기반으로 하는 애플리케이션의 생성 및 배포를 단순화하기 위해 Pivotal 팀에서 개발되었습니다. 독립 실행형 실행 파일을 구축하는 빠르고 가벼운 방법을 제공합니다.

SpringBoot와 SpringMVC의 차이점은 무엇입니까? SpringBoot와 SpringMVC의 차이점은 무엇입니까? Dec 29, 2023 am 10:46 AM

SpringBoot와 SpringMVC의 차이점은 무엇입니까? SpringBoot와 SpringMVC는 웹 애플리케이션 구축을 위한 매우 인기 있는 두 가지 Java 개발 프레임워크입니다. 별도로 사용되는 경우가 많지만 차이점은 분명합니다. 우선, SpringBoot는 Spring 프레임워크의 확장 또는 향상된 버전으로 간주될 수 있습니다. 개발자를 돕기 위해 Spring 애플리케이션의 초기화 및 구성 프로세스를 단순화하도록 설계되었습니다.

SpringBoot와 SpringMVC의 차이점은 무엇입니까? SpringBoot와 SpringMVC의 차이점은 무엇입니까? Dec 29, 2023 pm 05:19 PM

SpringBoot와 SpringMVC는 Java 개발에 일반적으로 사용되는 두 가지 프레임워크입니다. 둘 다 Spring 프레임워크에서 제공되지만 기능과 사용법에 약간의 차이가 있습니다. 이번 글에서는 SpringBoot와 SpringMVC의 특징과 차이점을 각각 소개하겠습니다. 1. SpringBoot의 특징: 단순화된 구성: SpringBoot는 구성보다 관례의 원칙을 통해 프로젝트 구성 프로세스를 크게 단순화합니다. 프로젝트와 개발자가 요구하는 매개변수를 자동으로 구성할 수 있습니다.

spring과 springmvc의 차이점은 무엇입니까? spring과 springmvc의 차이점은 무엇입니까? Dec 29, 2023 pm 05:02 PM

spring과 springmvc의 차이점: 1. 위치 지정 및 기능 2. 핵심 기능 4. 확장성 세부 소개: 1. 포지셔닝 및 기능 Spring은 종속성 주입, 관점 지향 프로그래밍, 트랜잭션 관리 및 기타 기능을 제공하는 포괄적인 애플리케이션 개발 프레임워크이며, Spring MVC는 엔터프라이즈 수준 애플리케이션의 개발을 단순화하도록 설계되었습니다. Spring 프레임워크는 웹 애플리케이션 개발에 사용되며 MVC 패턴을 구현합니다. 2. 핵심 기능 등.

springboot와 springmvc의 차이점은 무엇입니까? springboot와 springmvc의 차이점은 무엇입니까? Jun 07, 2023 am 10:10 AM

springboot와 springmvc의 차이점은 다음과 같습니다. 1. 다양한 구성 3. 다양한 개발 시간 5. 다양한 JAR 패키징 기능 구현 여부 제공되는 기능 8. 다양한 기능 9. 다양한 커뮤니티 및 문서 지원 10. 배포 설명이 필요한지 여부

Java의 SpringMVC 인터셉터를 사용하는 방법 Java의 SpringMVC 인터셉터를 사용하는 방법 May 13, 2023 pm 02:55 PM

인터셉터의 역할 SpringMVC의 인터셉터는 프로세서를 전처리하고 후처리하는 데 사용되는 서블릿 개발의 필터와 유사합니다. 인터셉터들은 일정한 순서로 체인으로 연결되는데, 이 체인을 인터셉터 체인(InterceptorChain)이라고 합니다. 인터셉트된 메서드나 필드에 액세스하면 인터셉터 체인의 인터셉터가 이전에 정의된 순서대로 호출됩니다. 인터셉터는 AOP 아이디어의 구체적인 구현이기도 합니다. 인터셉터와 필터의 차이점: 필터(Filter) 인터셉터(Intercepter)의 사용 범위는 서블릿 사양의 일부이며 모든 JavaWeb 프로젝트에서 사용할 수 있습니다.

Java API 개발에서 웹 서비스 처리를 위해 SpringMVC 사용 Java API 개발에서 웹 서비스 처리를 위해 SpringMVC 사용 Jun 17, 2023 pm 11:38 PM

인터넷의 발달로 웹 서비스가 점점 더 보편화되고 있습니다. 애플리케이션 프로그래밍 인터페이스인 JavaAPI는 다양한 애플리케이션 시나리오에 적응하기 위해 지속적으로 새 버전을 출시하고 있습니다. 널리 사용되는 오픈 소스 프레임워크인 SpringMVC는 웹 애플리케이션을 쉽게 구축하는 데 도움을 줍니다. 이 기사에서는 SpringMVC 구성, 컨트롤러 작성 및 사용을 포함하여 JavaAPI 개발에서 웹 서비스 처리에 SpringMVC를 사용하는 방법을 자세히 설명합니다.

SpringBoot와 SpringMVC의 유사점과 차이점 비교 SpringBoot와 SpringMVC의 유사점과 차이점 비교 Dec 29, 2023 am 08:30 AM

SpringBoot와 SpringMVC의 유사점과 차이점 분석 SpringBoot와 SpringMVC는 Java 분야에서 매우 중요한 개발 프레임워크입니다. 둘 다 Spring 프레임워크의 일부이지만 사용법과 기능에는 몇 가지 명백한 차이점이 있습니다. 이 기사에서는 SpringBoot와 SpringMVC를 비교하고 이들 간의 유사점과 차이점을 분석합니다. 먼저 SpringBoot에 대해 알아봅시다. 스프링보

See all articles