SpringBoot 7

[SpringBoot] RestAPI요청 예외처리(2)

...Rest요청에 관한 에러처리 연습두번째 시간. 1. BizException 생성 (비즈니스 예외) 비즈니스 예외처리 클래스 선언 (java.lang.RuntimeException 상속) 2. ApiExceptionController수정 (Rest Controller - throw Exception) REST요청을 처리하는 URI - "/api/boards/{id}" 추가. PathVariable ("biz")일시, BizException 강제발생..(서블릿컨테이너 WAS로 예외가 전달된다..) 3. ExceptionResolver 생성 (Custom) org.springframework.web.servlet.HandlerExceptionResolver 인터페이스 구현하여 커스텀한다. --> reso..

SpringBoot 2021.08.26

[SpringBoot] RestAPI요청 예외처리 (1)

...Rest요청에 관한 에러처리 연습 1. Rest요청 처리, Controller 선언. import lombok.AllArgsConstructor; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; @Slf4j @RestController public class ApiExceptionController { @GetMapping("/a..

SpringBoot 2021.08.18

[SpringBoot] 인터셉터 생성 및 적용

[Service Flow] HTTP 요청 -> WAS(톰캣) -> 필터 -> "Dispatcher" Servlet -> 인터셉터 -> 컨트롤러 [Exception Flow] WAS(톰캣) 인터셉터 --> 컨트롤러 --> View (Error Page) 1. 로그인터셉터 생성 org.springframework.web.servlet.HandlerInterceptor 인터페이스 구현 오버라이드 (Overrride) preHandle() --> 컨트롤러 호출 전 실행영역 postHandle() --> 컨트롤러 호출 후 실행영역 (예외발생시 호출X) afterCompletion() --> 브라우저에 View(화면) 렌더링 후 실행영역 (예외발생시 호출O) 2. WebConfig 수정 (로그인터셉터 등록) org..

SpringBoot 2021.07.31

[SpringBoot] 쿠키 생성 및 활용

* 쿠키(Cookie) 서버 로그인에 성공시, HTTP 응답(RESPONSE)에 쿠키정보를 담아 브라우저에 전달. 이후, 브라우저는 쿠키정보를 지속적으로 서버에 전달해 준다. (쿠키 생명주기 == Session Scope, 브라우저 종료시 소멸) [사전조건] * 세션정보를 직접적으로 제어하는 SessionManager클래스 활용 * 서블릿이 공식으로 지원하는 세션 (javax.servlet.http.HttpSession) 활용X 1. 세션관리 클래스 생성 2. 로그인 컨트롤러 수정 3. 홈 컨트롤러 수정 세션정보를 확인하여 화면 분기처리. 4. 애플리케이션 구동 후 로그인 시도 5. 로그인 처리 후 서버로 부터 전달받은 쿠키확인 (HttpResponse) 개발자도구 - Network - 'login' -..

SpringBoot 2021.07.25

[SpringBoot] 서블릿 필터 생성 및 적용

[Service Flow] - HTTP 요청 -> WAS(톰캣) -> 필터 -> "Dispatcher" Servlet -> 인터셉터 -> 컨트롤러 1. 로그필터 생성 javax.servlet.Filter 인터페이스 구현 오버라이드 init(), destory() --> 필터초기화, 종료시 호출영역 (생략가능) doFilter() --> 해당 필터에서 실질적으로 동작할 내역작성, 오버라이드 필수. 2. 로그인필터 생성 3. 로그, 로그인필터 적용 및 활용 org.springframework.boot.web.servlet.FilterRegistrationBean 빈(Bean)생성 setFilter() -> 생성한 필터등록 setOrder() -> 생성필터의 동작순서를 지정 addUrlPatterns() ->..

SpringBoot 2021.07.25

[SpringBoot] 예외처리와 에러페이지

1. 예외생성 컨트롤러 생성 (예외, 오류 강제생성) 서블릿컨테이너(WAS=톰캣)에 런타임예외. 에러를 전달하기 위한 메서드 작성 * throw Exception / 예외를 던지거나 * HttpServletResponse.sendError() / Http상태 메세지 Redirect 2. application.property 설정 * 스프링부트에서 기본적, 제공하는 whitelabel Page 비 활성화. 3. 예외, 오류 처리에 관한 빈(Bean) 생성 org.springframework.boot.web.server.WebServerFactoryCustomizer 인터페이스 구현 4. 에러페이지 컨트롤러 생성 (에러페이지 분기처리 담당) 에러페이지 분기처리 확인. (404, 500...) ********..

SpringBoot 2021.07.25

1. 스프링부트 프로젝트 기본생성 및 환경설정.

1. 이클립스 실행 후, SpringBoot Project Create 2. pom.xml 의존성 추가 3. application.property 설정추가 * port 및 context-path 설정: 8080(Default), '/' * View기본경로: 'src/main/webapp' 하위 '/WEB-INF/views' * View기본확장자: '.jsp' 3. 인코딩 설정 (Content types, Text, Web: UTF-8) UTF-8 Setting.. ** 스프링 스타터클래스 유의사항 (컴포넌트 스캔) ** 스프링부트 프로젝트 생성시 기본적으로('프로젝트명'+Application) 명칭의 스타터클래스가 생성된다. 컴포넌트 스캔 대상의 클래스(Cf. @Component, @Controller,..

SpringBoot 2021.07.18