전체 글80 서블릿 예외 처리 Exception자바 직접 실행 실행 도중 예외를 잡지 못하고 처음 실행한 main() 메서드를 넘어서 예외가 던져지면, 예외 정보를 남기고 해당 쓰레드는 종료웹 애플리케이션 try - catch로 예외를 잡지 못하면 톰캣 같은 WAS까지 예외 전달 WAS(전파) response.sendErrorresponse.sendError(Http 상태 코드)response.sendError(Http 상태 코드, 오류 메시지)HttpServlerResponse가 제공하는 메서드호출 시 당장 예외가 발생하는 것이 아닌, 서블릿 컨테이너에게 오류가 발생했다는 것을 전달HTTP 상태 코드와 오류 메시지도 추가 가능WAS(sendError 호출 기록 확인) 사용 예시@GetMapping("/error-404-t.. 2024. 7. 20. 스프링 인터셉터 스프링 인터셉터서블릿 필터와 같이 웹과 관련된 공통 관심 사항을 효과적으로 해결하는 기술스프링 MVC가 제공하는 기술스프링 인터셉터 흐름HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 스프링 인터셉터 -> 컨트롤러스프링 인터셉터는 디스패처 서블릿과 컨트롤러 사이에서 컨트롤러 호출 직전에 호출스프링 인터셉터 제한HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 스프링 인터셉터 -> 컨트롤러 // 로그인 사용자HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 스프링 인터셉터(적절하지 않은 요청이라 판단 시 컨트롤러 호출 X)스프링 인터셉터 체인HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 스프링 인터셉터1 -> 스프링 인터셉터2 -> 컨트롤러스프링 인터셉터는 체인으로 구성중간에 인.. 2024. 7. 11. 서블릿 필터 서블릿 필터필터는 웹과 관련된 공통 관심사(로그인, 사용자 권한 등)를 처리할 때 주로 사용지정한 URL 패턴에 대해 거름막 역할을 해주는 기능필터 흐름HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 컨트롤러필터 제한HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 컨트롤러 // 로그인 사용자HTTP 요청 -> WAS -> 필터(적절하지 않은 요청이라 판단 시 서블릿 호출 X) // 비 로그인 사용자필터 체인HTTP 요청 -> WAS -> 필터1 -> 필터2 -> 필터3 -> 서블릿 -> 컨트롤러필터는 체인으로 구성중간에 필터를 자유롭게 추가 가능(순서 지정 가능)Filter 인터페이스public interface Filter { public default void init(Filte.. 2024. 7. 11. Bean Validation 유효성 검사 애노테이션@Null // null만 혀용@NotNull // null을 허용하지 않음, "", " "는 허용@NotEmpty // null, ""을 또는 리스트 [] 빈값 허용하지 않음, " "는 허용@NotBlank // null, "", " " 모두 허용하지 않음@Email // 이메일 형식을 검사. 다만 ""의 경우를 통과. @Email보다 @Patten을 통한 정규식 검사를 더 많이 사용@Pattern(regexp = ) // 정규식을 검사할 때 사용@Size(min=, max=) // 문자길이를 제한할 때 사용, int는 불가!@Max(value = ) // 숫자 value 이하의 값을 받을 때 사용@Min(value = ) // 숫자 value 이상의 값을 받을 때 .. 2024. 6. 29. Validator Validatorpublic interface Validator { boolean supports(Class clazz); void validate(Object target, Errors errors);}Spring이 체계적으로 검증 기능을 도입하기 위해 해당 인터페이스 제공supports() : 해당 검증기를 지원하는 여부 확인validate(Object target, Errors errors) : 검증 대상 객체와 BindingResult를 넘겨서 검증을 수행하고 오류가 있으면 담음Errors는 BindingResult의 상위 인터페이스1. 직접 호출Validator 구현@Componentpublic class ItemValidator implements Validator { @O.. 2024. 6. 28. BindingResult BindingResultSpring이 제공하는 검증 오류 처리 방법의 핵심Spring이 제공하는 검증 오류를 보관하는 객체검증 오류 발생 시 해당 객체에 보관@RequestParam, @ModelAttribute에서 바인딩 에러가 발생하는 경우 해당 객체에 에러 내용이 담김@ModelAttribute에 데이터 바인딩 시 오류가 발생해도 컨트롤러가 호출 됨BindingResult가 없는 경우 : 400 error 발생, 컨트롤러 호출X, 오류 페이지로 이동BindingResult가 있는 경우 : 오류 정보를 BindingResult에 담아서 컨트롤러 정상 호출BindingResult 위치는 검증할 대상 바로 다음에 위치검증할 대상 바로 다음에 위치하기 때문에 어떤 객체를 대상으로 검증하는지 target을 .. 2024. 6. 27. 이전 1 ··· 6 7 8 9 10 11 12 ··· 14 다음