본문 바로가기

Backend/Spring

[SpringBoot] 블로그 프로젝트 #1 JSP 설정

본 포스팅은

 

https://chanho0912.tistory.com/19?category=866707 

 

[SpringBoot] 블로그 프로젝트 #0 Github 연동하기

본 포스팅은 https://chanho0912.tistory.com/18 [SpringBoot] SpringBoot와 Mysql 연동 기본적인 세팅을 완료했으면 Mysql연동을 진행해 볼게요. https://chanho0912.tistory.com/4 [Spring/SpringBoot] IntelliJ..

chanho0912.tistory.com

 

해당 포스팅이 완료되었다고 가정하고 진행하겠습니다.

 

이번에는 JSP 설정을 진행해보겠습니다.

 

우선 SpringBoot는 기본적으로 JSP를 권장하지 않습니다. 따라서 사용하시기에 앞서 몇 가지 설정이 필요합니다.

 

build.gradle 파일에 jsp 의존성을 추가해줍니다.

/* for JSP */
compile('javax.servlet:jstl')
compile("org.apache.tomcat.embed:tomcat-embed-jasper")

 

jsp파일은 기본 spring 엔진에서 실행되지 않습니다. 따라서 별도의 jstl설정이 필요합니다.

 

 

# Server
server.port=8000
server.servlet.context-path=/BlogProject
server.servlet.encoding.charset=UTF-8
server.servlet.encoding.enabled=true
server.servlet.encoding.force=true

# View with JSP
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

 

우선 application.properties에 다음과 같은 설정값을 넣어주겠습니다.

 

1. SpringBoot 프로젝트를 로컬 환경에서 실행시키면 기본적으로 8080 port에 톰캣이 실행됩니다. 하지만 이렇게 되면 두 개 이상의 프로젝트를 동시에 돌릴 수 없게 됩니다. 따라서 8000번으로 설정해주었습니다.

 

2. url path에 /BlogProject를 추가해 주었습니다.

 

3. JSP 파일에 대해 prefix와 suffix를 추가해주었습니다.

 

기본적으로 spring에서 권장하는 뷰 템플릿을 사용하면, src/main/resources/templates에서 자동으로 파일을 찾아줍니다. 하지만 jsp의 경우 그렇게 작동하지 않기 때문에 별도의 경로를 추가해주셔야 합니다.

 

즉 view가 담길 디렉토리의 구조는 다음과 같이 설정됩니다.

 

 

src/main/webapp/WEB-INF/views/xxx.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>

<h1>test.jsp</h1>

</body>
</html>

 

test.jsp를 다음과 같이 사용해보겠습니다.

 

package com.BlogWithSpringBoot;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class JSPTestController {

    // localhost8000/BlogProject/goJSP
    @GetMapping("/goJSP")
    public String JSPFileTest() {

        // prefix + ret value + suffix
        System.out.println("JSPFileTest()");
        return "test";
    }
}

 

return value로 test만 입력해주어도,

 

앞에 설정해두셨던 prefix와 suffix가 앞 뒤로 추가되어 webapp/WEB-INF/vies/test.jsp가 반환되게 됩니다.

 

 

다음과 같이 해당 View가 반환되었으면 설정이 완료되었습니다.

 

*저의 글에 대한 피드백이나 지적은 언제나 환영합니다.