I leaned

WebDataBinder 타입변환 : 타입이 불일치할 때 타입을 변환해서 BindingResult에 저장 (에러시 에러 저장), BindingResult는 데이터(예시에선 date) 바로뒤에 붙어 와야 한다. 데이터 검증 : month의 경우 1~12 같은 제약사항 검증 (에러시 에러저장) 타입변환 기본적으로 스프링에서 자동으로 변환을 해준다. 커스텀 변환기능을 추가 할 수 있다. 우선순위: 커스텀PropertyEditor, ConversionService, 디폴트PropertyEditor 순 또는 위에 처럼 @DateTimeFormat 에너테이션을 이용해서 필드에서 형식을 지정해줘도 됨, 숫자나 날짜는 많이 쓰여서 지원이 됨 PropertyEditor 양방향 타입 변환(String -> 타입 , 타입 ..
· I leaned/Etc
도커 컨테이너 기반의 가상화 플래폼 격리 된 공간에서 프로세스를 실행하는 느낌 가볍다. vs 하이퍼바이저 기반의 가상화(OS 가상화) 호스트 자원을 사용하기 위해 게스트OS를 거쳐야함 -> 느리다. 도커허브 도커에서 제공하는 이미지 저장소 https://hub.docker.com/ Docker Hub Container Image Library | App Containerization Deliver your business through Docker Hub Package and publish apps and plugins as containers in Docker Hub for easy download and deployment by millions of Docker users worldwide. hub...
스프링부트에서는 Dispatcher서블릿등 앞단을 가렸다. 하지만 전체적인 구조는 알아야한다. 컨트롤러를 디스패처에서 관리하기 위해서는 리플렉션을 알아야 한다. 리플렉션을 통해 클래스타입을 통일시켜야한다. 리플렉션을 통해 다형성 DispatcherServlet 기본적으로 입력,처리,출력 서블릿이 여러개 존재한다 공통 처리 부분을 DispatcherServlet을 통해 제거한다. DispatcherServlet이 전처리를 해준다. Spring MVC의 요청처리과정 요청이 들어오면 DispatcherServlet은 HandlerMapping한테 해당 URL에 대한 Handler Method 정보를 받아온다. HandlerAdapter를 통해 DispatcherServlet와 Controller을 느슨한 연결..
스프링에서의 예외처리 1. try-catch 컨트롤 메서드 내에서 try-catch로 처리 2. ExceptionHandler메서드가 처리 컨트롤러에서 처리 @ControllAdvice클래스에서 모든 처리 3. 예외 종류별로 뷰지정- SimpleMappingExceptionResolver 4. 응답 상태 코드 별로 뷰 지정 - @ExceptionHandler 컨트롤러와 비슷한 형태이다. 에러가 발생하면 해당에러에 맞는 처리를 하는 파트이다. 기본적으로 @Exception핸들러는 같은컨트롤러클래스에서만 감지를 함 @ExeceptionHandler(처리할예외종류), 예외가 여러개변 배열로 넣기 jsp에서 isErrorPage="true"로 해주면 model로 안넘겨도 exception속성들을 사용할 수 있다..
세션이란? 서버에 저장됨 (톰캣의 세션저장소) 서로 관련된 요청들을 하나로 묶은 것 쿠키를 이용 브라우저(브라우저에서 쿠키를 저장함)마다 개별 저장소(session객체)를 서버에 제공 수동종료: invalidate(예:로그아웃) 자동종료: 시간초과 일반적으로 한세션 -> 로그인부터 로그아웃까지 서버에 부담이 가기 때문에 타임아웃필수, 세션에는 최소한의 정보만 브라우저에서 쿠키설정을 차단으로 해놓으면 url에 세션을 담아보내도록 설계 (jsp에선 url태그를 쓰면 자동으로 됨) 새로운 곳에서 요청이 올때마다 객체를 만듬(1대1대응) 세션의 생성과정 서버에서 세션객체를 만들고 응답시 세션아이디를 브라우저에 넘겨준다. 이후 요청시 브라우저에서 쿠키와 함께 세션아이디를 넘겨준다. 세션아이디를 통해 서버는 클라이..
쿠키란? 브라우저(클라이언트)에 저장됨 이름과 값의 쌍으로 구성된 작은 정보 아스키 문자만 가능 유효기한 포함 서버에서 생성후 전송 -> 브라우저에 저장 -> 유효기간 이후 자동 삭제 서버에 요청시 domain,path가 일치(하위경로포함)하는 경우에만 자동 전송 클라이언트 식별 기술 쿠키생성 Cookie cookie = new Cookie("id","asdf"); //쿠키 생성 cookie.setMaxAge(60*60*24); //24시간 유효기간 설정 response.addCookie(cookie); //응답에 쿠키 추가 쿠키삭제 Cookie cookie = new Cookie("id",""); // 변경할 쿠키와 같은 이름 쿠키 생성 cookie.setMaxAge(0); //유효기간을 0으로 설정 ..
redirect 요청이 두번 간다. 잘못된 요청일시 클라이언트에게 알려준다. 스프링컨트롤러에서 return "redirect:/register/add"; 으로 사용됨 forward 요청이 한번 간다. 서버에서 알아서 처리하기에 클라이언트는 잘못된 요청인 것, 어디서 처리하는지 모른다. 잘못된 요청일시 내부에서 해당처리파트로 넘긴다. 스프링컨트롤러에서 return "forward:/register/add"; 으로 사용됨 forward를 이용한 MVC, write:컨트롤러, request:모델, login: 뷰 forward 코드예시 JSTLView 컨트롤러에서 jsp를 리턴하면 실행되는 뷰 RedirectView 302: 300번대 에러는 redirect에러 컨트롤러에서 redirect를 반환시 디스패쳐서..
서블릿에서는 주소매핑시 @WebServlet을 사용하고 스프링에서는 @RequestMapping을 사용한다. @RequestMapping(value"/주소", method=ReuqestMethod.POST) 등으로 사용가능하며 스프링4.3부터는 @GetMapping, @PostMapping등으로 좀 더 간단하게 사용할 수 있다. 클래스에 붙이는 @RequestMapping을 이용하면 URL의 공통부분을 생략할 수있다. @Controller // ctrl+shift+o 자동 임포트 @RequestMapping("/register") public class RegisterController { //@RequestMapping(value="/register/add", method=RequestMethod.GE..
윤재에요
'I leaned' 카테고리의 글 목록 (6 Page)