2-21 @GetMapping, @PostMapping (2)

서현우·2022년 5월 15일
0

스프링의정석

목록 보기
21/85

@GetMapping ,@PostMapping

@RequestMapping("/register")
public class RegisterController {
	@GetMapping("/add")
	public String register() {
	
	@PostMapping("/save")
	public String save(User user, Model m) throw Exception {

이렇게 URL을 나눌 수도 있다.

@RequestMapping의 URL패턴

우선순위(1 -> 2 -> 3)(Servlet과 비슷)
1.exact mapping : 정확히 일치
2.path mapping : 경로 맵핑
3.extension mapping : 확장자 맵핑
?는 한 글자, *는 여러 글자, **는 하위 경로 포함.

RequestMappingTest.java

RequestMapping의 URL패턴 확인 예제.

package com.fastcampus.ch2;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class RequestMappingTest {
//  @RequestMapping({"/login/hello.do", "/login/hi.do"}) 
    @RequestMapping("/login/hello.do") // http://localhost/ch2/login/hello.do
    public void test1(){
        System.out.println("urlpattern=/login/hello.do");
    }

    @RequestMapping("/login/*")   // /login/hello, /login/hi
    public void test2(){
        System.out.println("urlpattern=/login/*");
    }

    @RequestMapping("/login/**/tmp/*.do")   // /login/tmp/hello.do, /login/aaa/tmp/hello.do
    public void test3(){
        System.out.println("urlpattern=/login/**/tmp/*.do");
    }

    @RequestMapping("/login/??")
    public void test4(){   // /login/hi, /login/my.car
        System.out.println("urlpattern=/login/??");
    }

    @RequestMapping("*.do") // /hello.do, /hi.do, /login/hi.do
    public void test5(){ 
        System.out.println("urlpattern=*.do");
    }
    
    @RequestMapping("/*.???") //  /hello.aaa, /abc.txt
    public void test6(){ 
        System.out.println("urlpattern=*.???");
    }
}

URL인코딩 - 퍼센트 인코딩

URL에 포함된 non-ASCII문자를 문자코드(16진수) 문자열로 변환
(ex. 서현우 -> %...%...)
URL인코딩 != Base64(6bit씩 끊어서 A-Z,a-z,0-9,=,/로 표현)

profile
안녕하세요!!

0개의 댓글