ㅇ GET/POST 이해하기
1) GET 란?
- URL에 데이터를 포함시켜 요청
- 데이터를 헤더에 포함하여 전송
- URL에 데이터가 노출되어 보안에 취약
- 캐싱할 수 있음
=> 주로 조회할때만 사용
2) POST 란?
- URL에 데이터를 노출하지 않고 요청
- 데이터를 바디에 포함
- URL에 데이터가 노출되지 않아 GET방식보다 보안이 높음
- 캐싱할 수 없음
=> 주로 노출되면 안되는 데이터를 저장할 때 사용
ㅇ HttpMethod
: 다음의 각 메소드들은 HttpMethod에 매칭됩니다.
1) PostMapping
2) GetMapping
3) PutMapping
4) DeleteMapping
5) PatchMapping
ㅇ RequestMapping
1) 스프링부트 애플리케이션이 실행되면 애플리케이션에서 사용할 bean들을 담을 ApplicationContext를 생성하고 초기화합니다.
2) @RequestMapping 이 붙은 메서드들이 핸들러에 등록되는 것은 Application refresh되는 과정에서 일어납니다.
refresh과정에서 Spring Application 구동을 위해 많은 Bean들이 생성되고,
그 중 하나가 RequestMappingHandlerMapping 입니다. 이 Bean은 우리가 @RequestMapping 으로 등록한 메서드들을 가지고 있다가 요청이 들어오면 Mapping해주는 역할을 합니다.
3) Bean으로 등록된 HandlerMapping이 변수들을 찾아서 Adapter를 거쳐 실행합니다.
ㅇ Handler
: Spring MVC에서는 핸들러가 @Controller클래스를 의미합니다.
@GetMapping / @PostMapping 을 핸들러 메서드라고 부릅니다.
결국 Handler Mapping 이란 사용자의 요청과 이 요청을 처리하는 Handler를 매핑해주는 역할을 하는 것입니다.
ㅇ HandlerAdapter
: 스프링 부트가 아닌 다른 프레임워크의 핸들러를 Spring MVC에 통합하기 위해서는
HandlerAdapter를 사용할 수 있습니다.
ㅇ @RequestMapping
1) value
: URL값으로 매핑 조건을 부여합니다. 보통 호스트주소와 포트번호를 제외한 url주소를 넣어줍니다.
이는 다중 요청이 가능하여 @RequestMapping ( {"/hello". "/hello-rule", "/hello/**" } ) 형식으로 사용할 수 있습니다.
2) method
: HTTP request 메소드 값을 매핑조건으로 부여하는데 GET,POST,HEAD,OPTIONS,PUT,DELETE,TRACE 메소드가 존재합니다.
ㅇ PostMapping / GetMapping
: Post/Get method 로 RequestMapping을 합니다.
1) @PostMapping : HTTP Post Method에 해당하는 단축 표현으로 서버에 리소스를 등록(저장)할 때 사용합니다.
2) @GetMapping : HTTP Get Method에 해당하는 단축 표현으로 서버의 리소스를 조회할 때 사용합니다.
3) @DeleteMapping : 서버의 리소스를 삭제
4) @PutMapping : 서버의 리소스를 모두 수정
5) @PatchMapping : 서버의 리소스를 일부 수정
ㅇ 현재 저의 소스코드로 설명
@GetMapping("/new")
public String New() {
return "/Login/회원가입";
}
@PostMapping("/new")
public String create(MemberForm form) {
Member member = new Member();
member.setName(form.getName());
member.setPhoneNumber(form.getPhoneNumber());
memberService.join(member);
return "redirect:/";
}
<form action="/new" method="post">
- 위의 소스 코드에 대한 설명 및 순서도
* 출처
https://itvillage.tistory.com/33