[1] @RequestParam
(1) @RequestParam 정의
요청의 파라미터를 연결할 매개변수에 붙이는 애너테이션
컨트롤러에서 @RequestParam으로 파라미터 값을 넘겨받는다
HTTP요청 메세지의 파라미터 값을 편리하게 사용해주는 애너테이션이다
브라우저에 파라미터에 해당하는 매개변수의 값을 어떻게 넣었는가에 따라 결과값이 달라진다
(2) @RequestParam 생략
컨트롤러 매개변수가 String 기본형일경우 생략가능하다
(3) 파라미터 값 파악을 위해 jsp 파일 수정
year 라는 매개변수 값의 여부를 파악하기를 위해 yoil.jsp를 수정했다
[2] 애너테이션 미사용
(1) HttpServletRequest 응답 사용시
① 파라미터 미입력 : null / ② 파라미터 입력 : 빈 문자열
(2) String 매개변수 사용시
① 파라미터 미입력 : null / ② 파라미터 입력 : 빈 문자열
(3) int 매개변수 사용시
① 매개변수 미입력 : 500 서버 오류
string이 아닌 int로 매개변수를 받았기 때문에 서버 오류
② 매개변수 입력 : 400 클라이언트 오류
year의 값을 입력하지 않아 오류 발생
[3] 애너테이션 + 파라미터 필수 조건
(1) 타입 String
① 파라미터 미입력 : 상태 400오류
매개변수는 필수(required=true) 이기 때문에 매개변수의 값을 입력하지 않은 클라이언트 잘못으로 클라이언트 오류가 떳다
② 파라미터 입력 : 빈 문자열
(2) 타입 int
같은 결과값 도출 required=true 생략 가능
① 매개변수 미입력 : 400 클라이언트 오류
② 매개변수 입력 : 400 클라이언트 오류
(3) 타입 int + 기본값
① 매개변수 미입력 : 400 클라이언트 오류
클라이언트는 값을 입력하지 않았기 때문에 null이 나왔지만
기본값이 1로 설정되어있기 때문에 콘솔창에는 기본값이 뜬다
② 매개변수 입력 : 400 클라이언트 오류
[4] 애너테이션 + 파라미터 필수 아닌 조건
(1) 타입 String
① 파라미터 미입력 : null /② 파라미터 입력 : 빈 문자열
매개변수 필수가 아니니까 클라이언트, 서버 잘못 아님
(2) 타입 String + 기본값
① 매개변수 미입력 : null /② 매개변수 입력 : 빈 문자열
매개변수 필수가 아니므로 클라이언트, 서버 잘못 아님
(3) 타입 int
① 매개변수 미입력 : 500 서버 오류
required=false는 매개변수의 값이 필수가 아니다
입력을 하지 않은 클라이언트 잘못은 없지만 값이 들어오지 않았을경우 어떻게 해야할지 대비가 없기 때문에 서버 오류가 뜬다
② 매개변수 입력 : 400 클라이언트 오류
year의 값을 입력하지 않았으므로 빈문자열이 출력되어야하나 매개변수의 타입이 int이므로
타입을 바꿀수가 없어 클라이언트 오류가 떴다
(4) 타입 int + 기본값
① 매개변수 미입력 : 400 클라이언트 오류
② 매개변수 입력 : 400 클라이언트 오류
[5] 파라미터를 통합한다
(1) year , month , day 를 MyDate 클래스의 파라미터 date로 통합하기 위해 클래스를 만든다.
(2) 파라미터 year, month, day 대신 MyDate date를 받아온다
(3) JSP 수정한다
(4) 출력
[6] 오류의 예외 처리
(1) @ExceptionHandler(Exception.calss)
(2) 예외처리 여부
required = true로 필수입력일때는 예외처리를 한다
required = false로 필수입력이 아닐때는 기본값을 설정한다
'🌈 백엔드 > 스프링 MVC' 카테고리의 다른 글
스프링_Model 속성 추가 @ModelAttribute (0) | 2023.08.23 |
---|---|
스프링_테스트_로깅 Logging (0) | 2023.08.23 |
스프링_MVC 패턴 원리 이해하기 (0) | 2023.08.12 |
스프링_MVC 패턴 기본 구조 (0) | 2023.08.10 |
스프링_web.xml 기능 역할 (0) | 2023.07.20 |