GetMapping, PostMapping

뫄뫄(ahk)·2022년 9월 19일
0

Spring

목록 보기
9/18
post-thumbnail

이 게시글은 남궁성 강사님의 스프링의 정석 강의를 요약,정리한 글입니다.

@GetMapping, @PostMapping

@RequestMapping(value=”/register/add”, method={RequestMethod.POST, RequestMethod.GET})

@GetMapping("/register/add");
  • 위를 간단히 사용할 수 있는 annotation
  • url과 메서드를 매핑 할 때 요청 방식이 정해져있는 annotation
  • spring ver 4.3부터 사용가능
  • value가 같아도 method가 다르면 충돌나지 않는다.

@RequestMapping

  • 맵핑될 url의 공통부분을 @RequestMapping으로 클래스에 선언가능
  • 클래스에 @RequestMapping 선언하면 안의 모든 메서드의 매핑된 url앞에 붙는다.
<view-controller path=”…” view-name=”..”/>
  • Controller가 단순히 요청과 view페이지 맵핑의 기능만 할 때는 web관련 설정 파일인 servlet-context.xml에 위의 한 줄을 추가하자.
    • get요청만 허용한다

  • xmlns : xml name space 각 스키마에서 정의한 태그<>를 사용할 수 있도록 적어놓음. 접두사(xsi, beans, context..)를 이용하여 각 xmlns에서 정의한 태그를 사용할 수 있다. (하나의 접두사는 생략가능. 여기에서는 mvc가 생략됨)

URL 재작성

URL을 브라우저는 자동으로 인코딩 하지만, 내가 작성한 프로그램의 문자열은 직접 인코딩 설정을 해야한다. 그리고 view단에서도 decoding을 해줘야한다.

//view
<%@ page import="java.net.URLDecoder"%>

${URLDecoder.decode(param.msg, "utf-8" )}
//controller
String msg = URLEncode("메시지", "utf-8");

m.addAttribute("msg", msg);
return "redirect:/register/add";

return "redirect:/register/add?msg="+msg; //URL재작성 url rewriting
  • 위의 두 줄이 아래의 한 줄과 동일하다.
    model은 Controller에서 view에 값을 전달하는 객체.
    redirect는 재요청을 의미해서 요청을 하는데 model을 담아서 보낼 수는 없다.
    → spring이 알아서 model객체를 get방식의 queryString으로 변환시켜준다.
    → 요청할 때 여러개의 값을 같이 보내야한다면 쓸 때 실수할 수 있으니까 model에 담아도 된다.

@RequestMapping의 URL패턴

우선순위
1 exact mapping (/login/login)
2 path mapping (/login/)
3 extension mapping (
.do)
4 404 not found

  • url 패턴에
    • '?' : 한 글자
    • '*' : 여러글자
    • '**' : 하위경로포함
  • 배열로 여러 패턴 지정 가능
profile
NONONONONONOYes!

0개의 댓글