springBoot는 기본적으로 jsp를 지원하지 않는다.
그래서 jsp를 사용하기 위해 따로 개발자가 설정해줘야 한다.
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'javax.servlet:jstl'
spring:
mvc:
view:
prefix: /WEB-INF/views/ # 변경가능
suffix: .jsp
✅ 실행시 .jsp
까지 함께 적어주어야 하지만 이 설정을 하면,
이제 Controller 단에서 요청시 .jsp
를 뺄 수가 있다.
아래 그림처럼 src/main폴더 하위에 webapp/WEB-INF/views
폴더를 만들고 이 위치에 놓는다.
IndexController
// prefix : /WEB-INF/views/
// suffix : jsp
// 풀네임 : /WEB-INF/views/index.jsp
@Controller
public class IndexController {
@GetMapping
public String index() {
return "index";
}
}
main/webapp/WEB-INF/views/index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="/WEB-INF/views/save.jsp" method="post">
username: <input type="text" name="username" />
age: <input type="text" name="age" />
<button type="submit">전송</button>
</form>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
=> 첫줄은 JSP문서라는 뜻이다. JSP 문서는 이렇게 시작해야 한다
application.yml prefix 설정 안할시
=> 실행시 .jsp
까지 함께 적어주어야 한다.
http://localhost:8080/WEB-INF/views/index.jsp