일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- scanner
- 프로그래머스 sql 고득점 kit
- 정보처리기사필기요약
- 형변환
- 웹개발
- select
- Java
- 리눅스
- 백준
- Linux
- 프로그래머스 SQL
- String클래스
- Git
- JavaScript
- 자바스크립트
- select문
- 프로그래밍
- 자바
- 백엔드
- where
- 메서드
- 정보처리기사
- SQL
- 클래스
- 입출력
- 알고리즘
- DML
- mybatis
- StringBuilder
- 프론트엔드
- order by
- BufferedReader
- MySQL
- 개발자
- html
- sql문
- 데이터 조회
- 예외처리
- 스프링
- github
- Today
- Total
ToBe끝판왕
[ 개념 정리 ] 특정 View 반환 ( return 과 redirect ) 본문
Return 과 Redirect
1) Return 이란 ?
• 메서드의 반환타입이 String
- 해당 메서드가 호출되면, 특정 View ( View 템플릿 ) 의 이름을 반환
- 클라이언트의 요청을 처리하고 처리결과에 따라 어떤 화면을 보여줄지 결정
• 예시
@Controller
@RequestMapping("/main")
public class MyController {
@GetMapping("/home")
// home.jsp 파일을 찾아 렌더링
public String home() {
return "home";
}
}
- Controller 클래스의 @RequestMapping("/main") 과 @GetMapping("/home")은 http://localhost8080:/main/home 과
같은 URL 요청을 처리하는 메서드임을 의미
- home() 메서드는 "home"이라는 문자열을 반환하고 이는 home.jsp를 의미한다.
- 따라서 클라이언츠가 /main/home URL을 요청하면 home.jsp 파일이 렌더링되어 브라우저에 표시된다.
※ String 외에 반환 방식 : ModelAndView 반환 , @ResponseBody 어노테이션 사용하여 반환 등
2) Return "redirect:" 이란 ?
• 메서드의 반환타입이 String
- redirect: 접두사는 다른 URL로 리다이렉트 하라는 의미 ( HTTP 리다이렉트 응답 )
- 주로 폼 처리 이후, RPG(Post/Redirect/Get) 패턴에서 사용
• 사용 이유
- 클라이언트의 요청이 완료된 이후, 다른 페이지로 이동시켜야 하는 경우 사용됩니다.
ex) 회원가입 완료 이후, 로그인 페이지 이동
• 예시
@Controller
public class MyController {
@PostMapping("/join")
public String join(User user) {
// 회원 가입 로직
// ...
return "redirect:/login"; // 로그인 페이지로 리다이렉트
}
}
- redirect: 접두사 뒤에 오는 경로는 상대경로 이어야 한다.
- 쿼리파라미터를 함께 전달 가능하다.
ex) redirect:localhost:8080/join?param1=value¶m2=value
- Flash Attribute : RedirectAttributes를 이용하여 일회성으로 사용되는 속성을 다른 요청으로 전달 가능
3) Return 과 "redirect:" 비교
특징 | Rreturn | Redirect: |
목적 | View 렌더링 | 클라이언트가 다른 URL로 새요청 지시 |
URL 변경 여부 | 변경되지 않음 ( URL 유지 ) | 변경됨 |
HTTP 동작 | 서버 내부에서 View 처리 | HTTP 302 리다이렉트 응답 클라이언트에게 전달 |
사용 시점 | 데이터를 뷰로 전달해 바로 렌더링 | 데이터 처리 이후, 페이지 새로고침 or 새로운 경로 이동 |
RPG 패턴 | 지원 X | 지원 |
'■ 공부 기록 > 개념 정리' 카테고리의 다른 글
[ 개념 ] DIP ( Dependency Inversion Principle ) (5) | 2024.10.29 |
---|---|
[ JPA ] ORM의 개념 / 장단점 (0) | 2022.06.03 |
[ JAVA ] 문자열클래스 / String / StringBuffer / StringBuilder (0) | 2022.05.24 |
[ JAVA ] 문자열분리 / StringTokenizer 클래스 / Split( ) 메서드 (0) | 2022.05.19 |
[ JAVA ] Exception 개념 / 예외처리( try-catch문 ) (0) | 2022.05.17 |