오늘의 할일
- Servlet과 jpa를 활용한 홈페이지_3
- Servlet -> Spring 변환
Spring setting
- Spring
- project - gradle
- java - 17
- spring boot 3.4.2
더보기
Spring 프로젝트 생성
http://start.spring.io
Spring jsp사용
Spring에서 jsp사용을 위해 필요한 구성
- 디렉토리 구성
- 웹 서버에 의해 jsp파일에 직접접근 차단(Controller를 통해서만 접근)
- src/main/webapp(생성)/WEB-INF(생성)/jsp(생성)
- View Resolver setting
- ModelAndView 객체를 View 영역으로 전달하기 위해 알맞은 View 정보를 설정하는 역할.
- application.properties file
spring.mvc.view.prefix=/WEB-INF/jsp/(추가)
spring.mvc.view.suffix=.jsp(추가)
- 의존성 주입
- spring boot는 기본적으로 jsp엔진 미포함 의존성 추가 필요
- build.gradle -> dependencies
{
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web'
implementation group: 'org.glassfish.web', name: 'jakarta.servlet.jsp.jstl', version: '2.0.0'
implementation group: 'org.apache.tomcat.embed', name: 'tomcat-embed-jasper'
}
(추가)
Servlet code-> Spring
- servlet code -> spring
@WebServlet -> @RequestMapping
doGet, doPost -> @GetMapping, @PostMapping
...etc - javax.servlet:jstl 문제
Spring Boot version 3.x 이상: Spring Boot 3.x부터는 Jakarta EE로 전환되었으며, JSTL 관련 라이브러리도 Jakarta 패키지(jakarta.servlet.jsp.jstl)로 변경 (기존 jsp파일에 사용했던 javax.servlet:jstl)
MVC 관심사 분리
- MVC 패턴 구성을 위해 기존 servlet에 포함되어있던 로직을 분리
- M : 로그인 검증,Cookie,Session 과 같은 비즈니스 로직을 처리하는 모델계층으로 분리
- V : 기존 jsp파일을 화면을 랜더링하는 뷰 계층으로 분리
- C : 모델과 상호작용을 통해 적절한 뷰로 전달하는 login,logout부분을 컨트롤러 계층으로 분리
💻 jsp는 spring boot 2.5 이상 권장 x 대체 "thymeleaf"
'TIL' 카테고리의 다른 글
2025_02_21 TIL (0) | 2025.02.21 |
---|---|
2025_02_20 TIL (0) | 2025.02.21 |
2025_02_18 TIL (0) | 2025.02.18 |
2025_02_17 TIL (0) | 2025.02.17 |
2025_02_14 TIL (0) | 2025.02.14 |