
스프링MVC 구조는 main아래의 webapp폴더를 홈디렉토리로 인식한다.
따라서 프로젝트를 만들었으니 jsp파일을 실행할 수 있게끔 main아래에 webapp폴더를 만들어주자.

그리고 이 webapp폴더 아래에 index.jsp파일을 생성해서 대충 브라우저에 띄울 내용을 적어주고 서버를 시작한 후
localhost:8080/index.jsp
위 주소로 요청을 하면!
jsp파일 내용이 뜨는 것이 아니라 에러 또는 jsp파일 다운로드가 된다...
이것은 우리가 원하는 것이 아니므로 pom.xml에 라이브러리를 하나 추가해준다.
<!-- https://mvnrepository.com/artifact/org.apache.tomcat.embed/tomcat-embed-jasper -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
tomcat-embed-jasper 라이브러리는 JSP를 실행하기 위해 필요한 라이브러리다. 이 라이브러리를 통해 스프링 부트 애플리케이션에서 JSP 파일을 서블릿 컨테이너(ex. Tomcat)에서 컴파일하고 브라우저에 HTML로 렌더링할 수 있게 된다.
다시말해 JSP를 사용하려면 반드시 이 라이브러리가 필요하다.
참고로 메이븐 사이트에서 위 tomcat-embed-jasper 라이브러리를 찾아서 복붙하면 version부분에 노란색 줄로 경고가 뜬다.
이유는 스프링부트에서는 위 라이브러리가 들어왔을 때 관리하는 버전이 따로 있기 때문에 중복이 발생한다고 경고가 뜨는 것이다.
따라서 version부분은 지워주고 알아서 관리하라고 하면 된다.
maven 업데이트를 하고 서버 재시작 후 다시 브라우저에 요청을 하면 이번에는 페이지 내용이 잘 뜨는 것을 확인할 수 있다.
🔥 한줄평
jsp파일을 띄우기 위해 라이브러리를 따로 추가하는 이유는 보통 jsp 대신 타임리프(맞나?)가 기본으로 사용되기 때문일까..?