반응형
배운 것
redirect
forward
내용 정리
Redirect
- 요청을 받은 페이지가 Redirect한다. (상태코드 300번대를 반환하고 재요청할 Location을 반환한다)
- 응답을 받은 브라우저는 자동으로 Location을 읽어서 재요청한다
- Redirect로 인한 요청은 자동으로 수행된다.
- Redirect에 의해서 요청되는 것은 GET요청
- 요청을 2번
@PostMapping("/register/save")
public String save(User user, Model m) throws Exception {
// 1. 유효성 검사
if(!isValid(user)) {
String msg = URLEncoder.encode("id를 잘못 입력하셨습니다.", "utf-8");
// Redirect
return "redirect:/register/add?msg="+msg; // URL재작성(rewriting)
}
// 2. DB에 신규회원 정보 저장
return "registerInfo";
}
/register/add로 Redirect한다
/register/save로 요청을 하면, Redirect응답을 받게 되고,
브라우저는 자동으로 register/add경로로, GET방식으로 요청한다
요청이 2번
Forward
- 요청을 받은 페이지가 Forward한다. (사용자가 요청한 것을 그대로 다른 페이지로 넘겨 줌)
- 넘겨받은 페이지는 요청을 받아 처리를 하고 브라우저에게 응답해줌
- 요청을 1번
@PostMapping("/register/save")
public String save(User user, Model m) throws Exception {
// 1. 유효성 검사
if(!isValid(user)) {
String msg = URLEncoder.encode("id를 잘못 입력하셨습니다.", "utf-8");
// Forward
return "forward:/register/add"; // 다시 회원가입 화면으로 되돌려보냄
}
// 2. DB에 신규회원 정보 저장
return "registerInfo";
}
/register/add로 Forward한다
/register/save로 요청을 하면, 해당 페이지에서 /register/add로 넘겨줌
요청이 1번
느낀 점 / 보완할 점
익숙해지기 위해 자주봐야 할 것 같다.
'아카이브 > 스프링' 카테고리의 다른 글
| 스프링의 정석 (세션) (0) | 2021.12.28 |
|---|---|
| 스프링의 정석 (쿠키) (0) | 2021.12.28 |
| 스프링의 정석 ( @GetMapping, @RequestMapping, URL인코딩 ) (0) | 2021.12.27 |
| 스프링의 정석 (@RequestParam, @ModelAttribute) (0) | 2021.12.27 |
| 스파르타 코딩클럽 [ 웹개발의 봄, Spring ] - 1주차 (0) | 2021.12.26 |