Java java지도 시간 SpringMVC 기본 구성에 대한 자세한 소개

SpringMVC 기본 구성에 대한 자세한 소개

Sep 30, 2018 pm 04:04 PM
springmvc

이 글은 SpringMVC의 기본 구성에 대해 자세히 소개합니다. 필요한 친구들이 참고할 수 있기를 바랍니다.

오늘은 SpringMVC의 기본 구성에 대해 이야기하겠습니다. 현재 점점 더 많은 주류 프레임워크가 주석을 지원하고 있으며, 우리의 무적 Spring도 주석을 기반으로 한 "제로 구성"을 지원합니다.

XML과 비교한 주석의 장점: Java의 반사 메커니즘을 최대한 활용하여 클래스의 구조적 정보를 얻을 수 있습니다. 이 정보는 구성 작업을 효과적으로 줄일 수 있으며 Java 코드가 하나의 파일에 위치하므로 유지 관리가 더 편리합니다.

참고: 주석은 Spring 2.5 버전 이후에만 사용할 수 있습니다.

Annotation 메소드는 Bean의 정의 정보와 Bean의 구현 클래스를 결합한 것으로 Spring에서 제공하는 Annotation이 포함되어 있습니다.

@Component: 공통 Bean 클래스 선언

@Repository: 지속성 레이어 Dao 클래스 선언

@Service: 비즈니스 레이어 클래스 선언

@Controller: 컨트롤러 클래스 선언

나는 이 4개의 주석을 믿습니다. 이미 잘 알고 있으니 쓸데없는 말을 할 필요도 없습니다. 주석을 사용할 때는 수업 시간에 주석을 스캔하는 것을 잊지 마세요! ! !

@RequestMapping(매우 핵심 주석), 이 주석은 컨트롤러의 요청 URL을 지정하는 데 사용됩니다.

컨트롤러 클래스 정의에서: 예비 매핑 정보를 제공하고 클래스 아래의 모든 요청 메서드에 접두사를 추가합니다.

컨트롤러 클래스의 메서드 정의: 추가 매핑 정보 제공 및 메서드의 요청 경로 제공

DispacherServlet이 요청을 가로챈 후 컨트롤러에서 @RequestMapping이 제공한 매핑 정보에 해당하는 요청을 확인합니다. 행동 양식.

@Controller
@RequestMapping("user")
public class UserController {
    @RequestMapping("/hello")
    public String hello(){
        return "hello";
    }
}
로그인 후 복사

현재 요청 경로는 http://localhost:8080/SpringMvcDemo2/user/hello

@RequestMapping 요청 URL 요청 매핑 외에도 요청 메소드, 요청 매개변수 및 요청을 사용할 수도 있습니다. 헤더 요청, 주석에는 여러 매개변수가 있습니다:

1) 값: 요청의 URL을 나타냅니다.

2) 메소드: 요청 메소드(GET/POST)를 나타냅니다.

3) 매개변수: 요청의 매개변수를 나타냅니다.

4) Heads: 요청 헤더

이들 사이의 관계는 and이며, 여러 요청을 함께 사용하면 요청이 더 정확해질 수 있습니다.

@RequestMapping(value="hello2",method=RequestMethod.POST,params={"username","userpass"},headers="contentType=text/*") 
   public String hello2(){
           return "hello";
    }
로그인 후 복사

이 코드는 요청된 주소가 hello임을 나타냅니다. 요청 방법은 Post이며 두 개의 매개변수(username 및 userpass)를 전달해야 합니다. 요청 헤더 contentType은 text/로 시작해야 합니다. 동일한 방법으로 두 개의 URL을 작성할 수 있습니다. 하나는 POST이고 다른 하나는 GET이며 설정에 따라 엄격하게 호출됩니다.

@RequestMapping은 Ant 스타일 URL도 지원하며 Ant에서는 3개의 와일드카드를 지원합니다.

? : 캐릭터 구성을 나타냅니다.

*: 모든 문자 일치

**: 다중 레이어 경로 일치

SpringMVC의 매개변수 처리:

@pathVariable: URL 템플릿 메서드

URL에서 자리 표시자를 매핑하는 데 사용됨, 매핑된 변수 name은 자리 표시자의 이름과 일치해야 합니다. 이 경우 요청 주소는 http://localhost:8080/SpringMvcDemo2/user/testPathVariable/Miya가 됩니다. 이 miya는 우리가 기존 URL testPathVariable에서 전달한 매개 변수입니다. username=miya이지만 이는 Baidu를 포함하는 데 도움이 되지 않습니다.

@RequestMapping("/testPathVariable/{username}")
    public String hello3(@PathVariable("username")String username){
        System.out.println("username :  " + username);        
        return "hello";
    }
로그인 후 복사

@RequestParam: 요청 매개변수를 가져옵니다. 요청 매개변수 이름이 유형 이름과 일치하는 경우 이 주석을 생략해도 값을 계속 받을 수 있습니다.

@RequestMapping("/textParam")
    public String hello4(@RequestParam("username")String username,@RequestParam("userpass")String userpass){
        System.out.println("userpass :  " + userpass);        
        return "hello";
    }
로그인 후 복사

@RequestHeader: 요청 헤더의 매개변수를 가져옵니다

여기에는 세 가지 매개변수가 있습니다. value: 매개변수의 이름을 지정합니다. 필수: 매개변수가 필요한지 여부를 지정합니다. defualtValue: 기본값을 지정합니다. 매개변수.

@RequestMapping("/testRequestHeader")
    public String hello5(@RequestHeader("Accept-Language") String language){
        System.out.println("language=" + language);       
        return "hello";
    }
로그인 후 복사

@CookieValue: 클라이언트 쿠키 정보를 얻는 데 사용됩니다.

@RequestMapping("/testCookieValue")    
public String hello6(@CookieValue("JSESSIONID")String sessionid){
        System.out.println("sessionid=" + sessionid);        
        return "hello";
    }
로그인 후 복사

SpringMVC는 ServletAPI를 요청 메소드의 매개변수로 사용할 수 있습니다.

@RequestMapping("/testServletAPI")    
public String hello7(HttpServletRequest request,HttpServletResponse response,HttpSession session){        
//我们可以在这里使用
        return "hello";
    }
로그인 후 복사

SpringMVC는 모델 데이터를 처리하기 위해 다음과 같은 방법을 제공합니다.

1) ModelAndView: 모델 객체를 통해 모델 데이터를 추가하기 위해 처리 메소드의 반환 유형을 ModelAndView 메소드 본문으로 설정합니다. 뷰와 모델 정보 모두 포함

@RequestMapping("/testModelAndView")
    public ModelAndView hello8(){
        ModelAndView modelAndView = new ModelAndView("hello");
        //添加单个值
        modelAndView.addObject("h","Hello Spring MVC");        
        return modelAndView;
    }
로그인 후 복사

2) 맵 및 형식 매개변수: 형식 매개변수가 Map, Model, ModelMap인 경우 처리 방법이 반환되면 Map에 있는 데이터가 자동으로 모델에 추가됩니다. .  

Spring MVC는 내부적으로 모델 인터페이스를 사용하여 데이터를 저장합니다. 메소드를 호출하기 전에 암시적 모델 객체가 데이터 모델의 저장 컨테이너로 생성됩니다. 전달된 매개변수가 Map, Model, ModelMap인 경우 SpringMVC는 이를 자동으로 컨테이너에 저장합니다

@RequestMapping("/testMap")    
public String hello9(Map<String,Object> map){
        map.put("mapdata", "map data");       
        return "hello";
    }
로그인 후 복사

3)@SessionAttributes:将这个模型中的某个属性存储到Session中,以便多个请求之间共享这个属性,只能用来修饰类。在里面的方法如果参数容器中如map里卖弄保存一个与定义的属性名字相同会保存到容器中共享

4)@ModelAttribute:方法形参标记该注解后,形参对象就会放到模型中。

  SpringMVC在调用方法之前会逐个调用方法上标注了这个注解的方法。将@ModelAttribute中的属性保存到map中,可在执行表单提交生成对象之前,替换执行方法名相同的参数。

@ModelAttribute
public User getUser(){
    User user = new User();
    System.out.println("调用 getUser 方法");
    //默认保存名字为类名首字母小写的user对象到Request中
    return user;
}
@ModelAttribute
public void getUserById(Integer id,Map<String,Object> map){
    User myuser = new User();
    map.put("myuser", myuser);
    //手动指定user对象的名称,到Request中
    System.out.println("调用 getUser 方法");
}
로그인 후 복사

由@SessionAttributs会引发一个很容易轻视的错误当类使用@SessionAttributes修饰,而方法中使用了和SessionAttributes修饰同名的映射参数,确没有添加@ModelAttribute修饰时,则会报错。

위 내용은 SpringMVC 기본 구성에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 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 애플리케이션의 초기화 및 구성 프로세스를 단순화하도록 설계되었습니다.

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의 차이점은 무엇입니까? Dec 29, 2023 pm 05:19 PM

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

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