본문 바로가기

Spring/스프링 MVC 활용12

#8 예외 처리와 오류 페이지 예외 처리와 오류 페이지 1. 서블릿 예외 처리 순수 서블릿 컨테이너는 다음 두 가지 방식으로 예외 처리를 지원한다. ● Exception(예외) ◎ 자바 직접 실행 자바의 메인 메서드를 직접 실행하는 경우 main이라는 이름의 쓰레드가 실행된다. 실행 도중에 예외를 잡지 못하고 main 까지 예외가 던져지면, 예외 정보를 남기고 해당 쓰레드는 종료된다. ◎ 웹 어플리케이션 웹 어플리케이션은 사용자 요청 별로 별도의 쓰레드가 할당되고, 서블릿 컨테이너 안에서 실행된다. 만약 어플리케이션에서 예외를 잡지 못하고, 서블릿 밖까지 예외가 전달되면 WAS 까지 예외가 전달된다. 스프링 부트에서는 WAS에 예외가 전달되면 기본적으로 예외 페이지를 제공한다. [whitelabel error page] 스프링 부트에.. 2021. 8. 2.
#7 로그인 처리 - 필터, 인터셉터 로그인 처리 - 필터, 인터셉터 앞서 만들었던 상품 관리 서비스에서 상품 관리 페이지와 같은 경우 로그인 한 사용자만 이용할 수 있어야 한다. 지금까지 개발한 로그인 서비스에서는 로그인 하지않은 사용자에게는 상품 관리 버튼이 보이지 않기 때문에 문제가 없어 보인다. [홈 화면 - 로그인 상태] 문제는 로그인 하지 않은 사용자도 다음 URL을 직접 호출하면 상품 관리 화면에 들어갈 수 있다는 것이다. http://localhost:8080/items 상품 관리 컨트롤러에서 로그인 여부를 하나하나 작성하면 되지만, 등록, 수정, 삭제, 조회 등 상품관리의 모든 컨트롤러에 공통으로 로그인 여부를 확인하는것은 매우 번거롭다. 이러한 공통 관심사는 스프링의 AOP로도 해결할 수 있지만, 웹과 관련된 공통 관심사는.. 2021. 8. 1.
#6 로그인 처리 - 쿠키, 세션 로그인 처리 - 쿠키, 세션 기존의 상품 관리 서비스에 로그인 기능을 추가한다. · 홈 화면 - 로그인 전 - 회원 가입 - 로그인 [홈 화면 - 로그인 전] · 홈 화면 - 로그인 후 - 본인 이름(~~님 환영합니다.) - 상품 관리 - 로그 아웃 [홈 화면 - 로그인 후] · 보안 요구사항 - 로그인 사용자만 상품에 접근하고, 관리할 수 있음 - 로그인 하지 않은 사용자가 상품관리에 접근하면 로그인 화면으로 이동 · 회원 가입 [회원 가입] · 로그인 [로그인] 1. 로그인 폼, 기능 추가 ■ 홈 홈 화면을 개발한다. [HomeController] @GetMapping("/") public String home() { return "home"; } [홈 뷰 템플릿 - home] 홈 화면 회원 가입 로.. 2021. 7. 30.
#5 Bean Validation Bean Validation 객체나 특정 상황에 대해 검증 로직을 매번 구현하고 Validator를 만드는 것은 상당히 번거롭다. 특히 특정 필드에 대한 검증로직은 대부분 빈 값인지 아닌지, 특정 크기를 넘는지 아닌지와 같이 매우 일반적인 로직이다. 여기서 애노테이션을 활용한 검증 로직을 모든 프로젝트에 적용할 수 있게 공통화하고, 표준화한 것이 바로 Bean Validation이다. Bean Validation을 잘 활용하면, 애노테이션 하나로 검증 로직을 매우 편리하게 사용할 수 있다. Bean Validation은 특정한 구현체가 아니라 Bean Validation 2.0(JSR-380)이라는 표준 기술이다. 쉽게 이야기해서 검증 애노테이션과 여러 인터페이스의 모음이다. Bean Validation.. 2021. 7. 28.