전체 글
-
HandlerInterceptor (서블릿 필터 비교)SPRING/스프링 MVC 2021. 6. 15. 00:48
HandlerInterceptor - 핸들러 맵핑에 설정할 수 있는 인터셉터 - 핸들러를 실행하기 전, 후(아직 랜더링 전) 그리고 완료(랜더링까지 끝난 이후) 시점에 부가 작업을 하고 싶은 경우에 사용할 수 있다. - 여러 핸들러에서 반복적으로 사용하는 코드를 줄이고 싶을 때 사용할 수 있다. (로깅, 인증 체크, Locale 변경 등) boolean preHandle(request, response, handler) - 핸들러 실행하기 전에 호출 됨 - “핸들러"에 대한 정보를 사용할 수 있기 때문에 서블릿 필터에 비해 보다 세밀한 로직을 구현할 수 있다. - 리턴값으로 계속 다음 인터셉터 또는 핸들러로 요청,응답을 전달할지(true) 응답 처리가 이곳에서 끝났는지(false) 알림. void pos..
-
Formatter 추가하기SPRING/스프링 MVC 2021. 6. 14. 22:43
Formatter : Formatter는 데이터 바인딩을 수행해주는 것을 도와줍니다. 즉, 객체 문자열 간의 변환을 수행합니다. 예제 코드 public class Person { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } // @Component // 등록 방식 1 : Component로 등록시 WebConfig에서 addFormatter로 Formatter를 추가하지 않아도 된다. public class PersonFormatter implements Formatter { @Override public Person parse(Strin..
-
스프링 부트에서 JSP 사용하기SPRING/스프링 MVC 2021. 6. 13. 03:08
제약 사항 - JAR 프로젝트로 만들 수 없음. WAR 프로젝트로 만들어야 함. - JAVA -JAR로 실행 할 수는 있지만, "실행가능한 JAR파일"을 지원하진 않음. ex:) java -jar target\demo-0.0.1-SNAPSHOT.war -언더 토우(JBOSS에서 만든 서블릿 컨테이너)는 JSP를 지원하지 않음. - Whitelabel 에러 페이지를 error.jsp로 오버라이딩 할 수 없음. 의존성 추가 javax.servlet jstl org.apache.tomcat.embed tomcat-embed-jasper provided 아래와 같이 WEB-APP/WEB-INF 밑 경로에 jsp 파일을 추가한다. public class Event { private String name; priv..
-
SPRING MVC 설정 관련 정리SPRING/스프링 MVC 2021. 6. 11. 01:16
DISPATCHSERVLET 이용 - DisspatcherServlet가 Web을 구동하는데 필요한 여러 Bean을 자동으로 등록해준다. @Configuration @ComponentScan public class WebConfig { @Bean public ViewResolver viewResolver() { InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); viewResolver.setPrefix("/WEB-INF/"); viewResolver.setSuffix(".jsp"); return viewResolver; } } 필요하다면 위와 같이 WebConfig 클래스에 Bean을 직접 등록하여 Dispatch..
-
스프링 MVC -WEB.XML 제거SPRING/스프링 MVC 2021. 6. 10. 23:43
DispatcherServlet 초기화 1. 특정 타입에 해당하는 빈을 찾는다. 2. 없으면 기본 전략을 사용한다. (DispatcherServlet.properties) 스프링 부트 사용하지 않는 스프링 MVC ● 서블릿 컨네이너(ex, 톰캣)에 등록한 웹 애플리케이션(WAR)에 DispatcherServlet을 등록한다. ○ web.xml에 서블릿 등록 ○ 또는 WebApplicationInitializer에 자바 코드로 서블릿 등록 (스프링 3.1+, 서블릿 3.0+) ● 세부 구성 요소는 빈 설정하기 나름. public class WebApplication implements WebApplicationInitializer { @Override public void onStartup(ServletC..
-
DispatchServlet 분석SPRING/스프링 MVC 2021. 6. 6. 19:17
DispatchServlet은 아래와 같이 구성되어 있다. MultipartResolver - 파일 업로드 요청 처리에 필요한 인터페이스 LocaleResolver - 클라이언트의 위치(Locale) 정보를 파악하는 인터페이스 ThemeResolver - 애플리케이션에 설정된 테마를 파악하고 변경할 수 있는 인터페이스 HandlerMapping - 요청을 처리할 핸들러를 찾는 인터페이스 - 기본적으로 아래 두개가 등록이 되어 있다. RequestMappingHandlerMapping : Annotation을 기반으로 Handler를 찾는다. BeanNameUrlHandlerMapping : Bean 이름을 기반으로 Handler를 찾는다. HandlerAdapter - HandlerMapping이 찾아낸..
-
스프링 MVC 연동SPRING/스프링 MVC 2021. 6. 6. 01:45
DispatcherServlet 스프링 MVC의 핵심. Front Controller 역할을 한다. DispatcherServlet web.xml 등록 - /app/ ~으로 url을 입력하면 DispatcheServlet으로 매핑이 된다. - Controller로 매핑할 수 있도록 한다. Archetype Created Web Application app org.springframework.web.servlet.DispatcherServlet contextClass org.springframework.web.context.support.AnnotationConfigWebApplicationContext contextConfigLocation com.springmvc.WebConfig app /app/* ..
-
스프링 IOC 컨테이너 연동SPRING/스프링 MVC 2021. 6. 5. 18:16
pom.xml에 의존성 추가 org.springframework spring-webmvc 5.3.7 ContextLoaderListener 등록 contextLoaderListenr 역할 - ApplicationContext를 서블릿 어플리케이션 생명주기에 맞춰서 바인딩해준다. - ApplicationContext를 웹어플리케이션에 등록된 서블릿들이 사용할 수 있도록 서블릿 컨텍스트에 등록해준다. - 서블릿이 종료될때 제거해준다. - 즉, ApplicationContext를 연동해준다. - 서블릿에서 IoC 컨테이너를 ServletContext를 통해 꺼내 사용할 수 있다. org.springframework.web.context.ContextLoaderListener ApplicationContext ..