본문 바로가기

웹 프로그래밍/스프링7

인터셉터(Interceptor) 인터셉터(Interceptor)란? Interceptor는 Displatcher servlet에서 Handler(Controller)로 요청을 보낼 때, Handler에서 Dispatcher servlet으로 응답을 보낼 때 동작합니다. 인터셉터 작성법 org.springframework.web.servlet.HandlerInterceptor 인터페이스를 구현합니다. org.springframework.web.servlet.handler.HandlerInterceptorAdapter 클래스를 상속 받습니다. Java Config를 사용한다면, WebMvcConfigurerAdapter가 가지고 있는 addInterceptors 메소드를 오버라이딩하고 등록하는 과정을 거칩니다. 인터셉터 적용 package.. 2020. 7. 2.
01. 상태정보 유지기술(Cookie) HTTP프로토콜의 특성은 상태 유지가 안되는 프로토콜입니다. 그말은 즉 각각의 HTTP 요청이 독립적이라는것입니다. HTTP 요청을 받는 서버 입장에서 여러개의 요청이 한 브라우저 혹은 사용자가 요청하고 있다는것을 알수 없습니다. 비연결지향이라는 특성 덕분에 리소스의 낭비가 줄어드는것은 좋지만 이것이 항상 편리하게만 작용하는것은 아닙니다. 바로 같은 사용자로부터 일련의 요청을 묶어야할 때가 필요하기 때문입니다. 흔한 예로 인터넷 쇼핑에서 로그인을 하고 여러 상품을 검색하고 찾을때 계속 로그인이 유지되는것입니다. 따라서 상태유지를 위해 Cookie와 Session이 등장하게 됩니다. 쿠키란? 정의 클라이언트 단에 저장되는 작은 정보의 단위 입니다. 클라이언트에서 생성하고 저장될 수 있고, 서버 단에서 전송.. 2019. 9. 3.
스프링 MVC 빈 설정 @Configuration을 사용한 자바 설정파일에 직접 @Bean으로 등록 할 수있지만 SpringBoot이전에 스프링 환경에서도 직접 빈설정을 하는 방법보다는 @EnableWebMvc를 이용한 방법이 사용된다. 먼저 @EnableWebMvc를 사용하지 않고 직접 @Bean을 이용하여 ViewResolver의 Prefix와 Suffix를 설정해 빈으로 등록하는 방법을 보여준다. 디버거를 이용해서 DispatcherServlet에 등록된 빈을 살펴보면 기본적으로 2개의 handlerMapping과 3개의 handlerAdaptor가 등록이 되어있다. 그중에 애노테이션 관련된 RequestHandlerMapping를 살펴보면 interceptor가 하나도등록이 되어있지 않다. hadlerAdaptor에는 .. 2019. 4. 30.
IntelliJ Maven Project를 이용한 Spring MVC 프로젝트 생성 방법03 이제 만든 Java config파일을 설정하기위해 DispatcherServlet을 FrontServlet 으로 등록해야 한다. web.xml에 설정을 추가하였는데 살펴보면 servler-mapping에서 url-pattern이 /로 되어 있다. 따라서 모든 요청이 들어왔을때 servlet-name이랑 같은 서블릿에 등록되어있는 서블릿 클래스가 실행하도록 하였다. servlet-name이 mvc에 해당하는 서블릿클래스는 스프링이 제공하는 DispatcherServlet이 등록되어있다. 이것을 FrontController로 등록하는 설정이다.그런 다음에 만들어 놨던 WebMvcContextConfiguration.java 파일을 DispatcherServlet이 실행될때 읽어 낼 수 있도록 init-par.. 2019. 2. 19.