webapp > WEB-INF 안에 jsp 파일을 저장하면 WEB-INF 폴더 내부 파일들은 외부에서 바로 접근이 불가하다
따라서 Controller 메서드에서 해당 jsp 를 잡아주게 해서 이를 기반으로 jsp 내용을 response body 에 담아 전송하게 만든다
웹페이지에서 바로 jsp 를 여는 것이 아니라 Controller 를 통해서 한단계 더 거쳐 전송을 함으로서 보안이 더 뛰어나다는 장점을 가진다
@Controller
public class HelloController {
@RequestMapping("/lesson01/ex02/1")
public String hello() {
return "lesson01/ex02";
}
}
@RequestMapping 으로 url mapping 한 상태에서 return 값이 주소값 형태인 String 일 경우에는 해당 경로에 있는 jsp 를 찾아 전송한다
- 만약 @RequestMapping 과 함께 @ResponseBody annotation 이 있는 경우에는 return 값을 그대로 response body 에 담아 전송하게 되므로 주소값이 될 수 없다
이를 위해 다음 두가지로 jsp 연동을 해야 한다
1. build.gradle 에 jsp 연동 라이브러리를 추가
dependencies {
...
// jsp 연동 라이브러리
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'javax.servlet:jstl:1.2'
}
2. application.properties 에 Spring mvc view 설정 추가
src/main/resources 아래 application.properties 가 존재한다
// jsp view 연동
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
/WEB-INF/jsp/ 경로로 시작하고, .jsp 로 끝나는 jsp 파일을 찾아 전송한다
'웹개발 > spring' 카테고리의 다른 글
[Spring] MyBatis 연동 (0) | 2022.08.04 |
---|---|
[Spring] 객체 지향 설계와 Spring (0) | 2022.08.04 |
[Spring] Annotation 종류 (0) | 2022.08.03 |