스프링 웹 MVC-06.스프링 부트 JSP, War 파일 배포
스프링 부트 JSP
“If possible, JSPs should be avoided. There are several known limitations when using them with embedded servlet containers.”
- https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-spring-mvc-template-engines
제약 사항
- JAR 프로젝트로 만들 수 없음, WAR 프로젝트로 만들어야 함
- Java -JAR로 실행할 수는 있지만 “실행가능한 JAR 파일”은 지원하지 않음
- 언더토우(JBoss에서 만든 서블릿 컨테이너)는 JSP를 지원하지 않음
- Whitelabel 에러 페이지를 error.jsp로 오버라이딩 할 수 없음.
참고
- https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-jsp-limitations
- https://github.com/spring-projects/spring-boot/tree/v2.1.1.RELEASE/spring-boot-samples/spring-boot-sample-web-jsp (샘플 프로젝트)
의존성 추가
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
태그 선언
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
application.properties
spring.mvc.view.prefix=/WEB-INF/jsp
spring.mvc.view.suffix=.jsp=
War 파일 배포
1.java -jar를 사용해서 실행하기
- 스프링 애플리케이션 안에서
- 임베디드 톰캣 안의 디스패쳐 서블릿 -> Ioc 컨테이너
SpringApplication.run 사용하기
2.서블릿 컨테이너에 배포하기
- 서블릿 컨테이너 안에서
- War 안에서
- 디스패쳐 서블릿 -> Ioc 컨테이너
- War 안에서
SpringBootServletInitializer (WebApplicationInitializer) 사용하기