예외 페이지.. 서블릿 예외처리과정1. HTTP 요청 -> WAS -> Filter -> Servlet -> Interceptor -> Controller2. Controller 예외 발생!3. Controller -> Interceptor -> Servlet -> Filter -> WAS4. WAS(error처리 페이지) -> Filter -> Servlet -> Interceptor -> Controller5. Controller(오류처리) -> Interceptor -> Servlet -> Filter -> WAS -> HTTP 응답 위의 방식대로, 정상적인 요청에서 예외발생시 해당 예외처리를 WAS에서 한번 더 재요청하게 된다해당 부분을 생각하여, 예외처리를 위한 등록과정 과 예외처리용 Contr..
spring mvc Intercept... Intercept 란?Servlet 필터와 유사한 역할을 하는 기능.다만, 차이점이 있다면 Spring MVC 에서 제공하는 기능이며, Servlet Filter 이후에 동작하는 차이점이 존재Intercept의 특징은 Servlet Filter에서 제공하는 doFilter() 메서드 한개와 다르게 순서에 따라 3개의 메서드가 존재 Intercept 흐름HTTP 요청 -> WAS -> Filter -> Servlet -> Intercept -> ControllerServlet Filter가 Intercept 보다 먼저 호출됨중복 처리 되지 않도록 주의하며 설계해야함 Intercept 인터페이스public interface HandlerInterceptor { ..
servlet filter... Filter 사용 이유인증 되지 않은 사용자가 접근을 시도한다면, 그 접근 자체를 거부해야하는 부분이 필요하다.이때에, 사용할 수 있는 기술 중 하나가 "Filter"이다 HTTP 요청 흐름 (+ Filter)HTTP Request FlowHTTP 요청 -> WAS -> Filter -> Servlet -> Controller인증되지 않는 사용자의 요청을 거부하기 위해서는 Controller 도달 전에 거부를 해야한다 (Filter의 사용 이유)Filter의 경우 Chain 기능이 존재 (= 여러개의 Filter를 둘 수 있다) Servlet Filter 인터페이스public interface Filter { default void init(FilterConfi..
session에 대하여...Session을 왜 사용하는가?Cookie는 보안상의 커다란 이슈가 있었다.Cookie의 경우 웹 클라이언트에서 임의로 데이터를 조작하여 보낼 수 있는 치명적 단점이 존재하여, 세션을 사용하여 서버에 저장하고 클라이언트에게는 임의의 값을 사용하는 방법을 채택하기 위해 Session을 사용하게 되었다.Session으로 UUID (랜덤한 값)을 발급하고 이를 이용하여 cookie와 같이 사용한다추정이 불가능한 값이므로, 보안상 안전도가 올라가게 된다서버의 경우, Session Respository를 따로 관리하게 된다 1. 직접 Session 생성 Session 생성private createSession(Object value, HttpServletResponse response..
Cookie에 대하여... Cookie 사용 이유HTTP 프로토콜의 경우 Stateless 방식의 통신을 한다.Stateless 방식의 경우, Client가 요청 -> Server 응답으로 통신이 끝나게 되므로 상태 저장을 하지 않는 문제가 발생한다.이때에, 클라이언트 입장에서는 모든 정보를 계속해서 보내야하는 문제가 발생!(-> Cookie가 이럴때 사용되게 된다)Cookie는 클라이언트가 만들어서, 서버에게 보내는 일종의 key인 역할이다.해당 key가 서버에 알맞게 저장되어있다면, 서버는 그에 준하는 인증 및 절차를 수행하게 된다문제) 클라이언트가 주체가 되기 때문에, 보안상의 문제가 있을 수 있다 (* 위조) Cookie의 종류영속 쿠키만료 날짜를 입력하면, 해당 날짜까지 쿠키를 유지한다세션 쿠키..
Bean Validation Bean Validation 사전 준비Bean Validation 사용 전 gradle 추가 implementation 'org.springframework.boot:spring-boot-starter-validation' 검증 Annotation@NotBlank빈값 + 공백만 있는 경우를 허용하지 않는다@NotNullnull을 허용하지 않는다@Range(min=숫자1, max= 숫자2)숫자1 ~ 숫자2 범위까지 가능@Max(숫자)지정 숫자까지 최대 지정 가능 Bean Validation 검증 순서@ModelAttribute로 객체로 변환 ( -> 실패시, typeMistMatch로 FieldError 추가 == Bean Validation 적용 x)객체로 변환될시, Val..
Validation Validation 방법HashMap 과 StringUtils를 이용한 JAVA 직접 구현 (+ RedirectAttrubutes)BindigResult를 이용Validator 분리 Validatie 구현HashMap 과 StringUtils 및 Redirect 를 이용한 방법HashMap : error 담을 바구니StringUtils : Null 체크redirectAttributes : 리다이렉트시 정보 전달@PostMapping("url")public String func(@ModelAttribute("item") Item item, RedirectAttributes redirectAttributes, Model model){ Maperrors = new Hash..
1. 메시지2. 국제화 Bean 등록 (message) 직접 등록@Bean public MessageSource messageSource(){ ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); messageSource.setBasenames("messages", "errors"); messageSource.setDefaultEncoding("utf-8"); return messageSource; }자동 등록messages 라고 자동 등록 되어있음spring boot 등록spring.messages.basename=messages (기본 값)// 값의 messages를 변경하면 파일이름을 다르게 설정할 수 있..
- Total
- Today
- Yesterday
- db
- 오블완
- Spring
- 포트폴리오
- 타입변환
- bean
- Thymeleaf
- JSON
- Java
- 기술면접
- SQL
- 알고리즘
- 깊이우선탐색
- 검증
- 게시판 프로젝트
- stack
- 이진탐색
- 예외처리
- 정렬
- 버블정렬
- BFS
- 백준
- JDBC
- 게시판
- 우선순위 큐
- 클래스
- DFS
- 코딩테스트
- 티스토리챌린지
- HTML5
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |