JSP 연동
JSP 연동
Controller에서 프로그래밍 로직을 수행한 뒤 JSP 화면으로 포워드(forward) 되도록 설정할 수 있다. Spring Legacy에서는 JSP가 표준이므로 기본 설정되어 있으나 Spring Boot는 View 초기 설정이 존재하지 않는다.
Spring Boot에서는 여러 종류의 View 설정이 가능하며, 이 문서에서는 JSP 설정 방법을 살펴본다.
의존성 추가
JSP를 사용하기 위해서는 다음 의존성이 필요하다.
javax.servlet.jstl
org.apache.tomcat.embed.tomcat-embed-jasper
pom.xml
의 <dependencies>
에 다음과 같이 추가한다.
JSP 생성
Spring Boot에서는 WEB-INF
, META-INF
등의 기존 폴더들을 초기 생성하지 않는다. 따라서 필요한 경우 수동으로 생성해야 한다. JSP
의 경우 사용자의 직접 접근을 차단하고 컨트롤러와 연결된 경우만 접근이 가능하도록 WEB-INF
폴더 내부에 보관하는 것이 일반적이다.
Spring Legacy의 기본 JSP 경로와 동일한 위치에 JSP를 보관할 수 있는 폴더를 생성한다.
생성 메뉴에서 JSP가 보이지 않는다면 다음 문서를 참고하여 플러그인 설치를 해야한다.
생성한 폴더에 연결될 JSP 파일을 생성한다(welcome.jsp
)
컨트롤러 매핑 작성
컨트롤러에 다음 코드를 추가한다.
@ResponseBody
를 사용하지 않으면 반환되는 값이 View의 경로로 처리된다. 따라서 welcome 메소드 실행 후 welcome.jsp로 이어진다. 이를 포워드(Forward)라고 한다. 내부적으로는 DispatcherServlet에서 처리해주며 구조는 다음과 같다.
접속 확인
Spring Boot App이 실행중인지 확인하고 브라우저에서 다음 주소에 접속한다.
설정이 잘 되었다면 위와 같이 연결된 JSP 화면이 나오며, 오타 등 코드에 문제가 발생한 경우 다음과 같이 404 Error 화면이 나온다.
View Resolver 설정
JSP를 /WEB-INF/views
폴더에 계속 생성할 예정이므로 앞으로 생성될 컨트롤러의 반환 주소는 반드시 /WEB-INF/views/???.jsp
형태가 된다. 반복적이고 비효율적인 작업을 피하기 위해 앞부분의 접두사 /WEB-INF/views/
와 뒷부분의 접미사 .jsp
를 자동 입력되도록 설정할 수 있다.
설정하는 방법은 여러 가지가 있으며, application.properties
에 설정하는 방법으로 진행한다.
/
혹은 .
등을 누락하면 오류가 발생하므로 정확하게 작성해야 한다.
위와 같이 설정을 하고 나면 Controller에서 반환하는 주소에 자동으로 접두사(prefix)와 접미사(suffix)가 추가되므로 주소를 변경해야 한다.
View Resolver를 사용하면 주소의 공용 부분을 효율적으로 처리할 수 있다.
Last updated