2주차 과제(2)

오정빈·2025년 9월 9일

내일배움캠프

목록 보기
7/22

2025 09 09 스파르타 코딩클럽 7일차

오늘은 남은 과제 2개 진행했고, 진행하면서 발생한 에러 정리와 해결한 방법을 공유한다.


1. JSP 파일 위치 문제

문제:

  • JSP 파일이 src/main/resources/web/WEB-INF/jsp/에 위치
  • Spring Boot가 JSP를 찾지 못해 404 오류 발생

해결:

# 올바른 위치로 JSP 파일 이동
mkdir -p src/main/webapp/WEB-INF/jsp
cp -r src/main/resources/web/WEB-INF/jsp/* src/main/webapp/WEB-INF/jsp/

원인: Spring Boot는 src/main/webapp/WEB-INF/jsp/ 경로에서 JSP 파일을 찾음


2. Servlet API 버전 충돌

문제:

  • javax.servlet vs jakarta.servlet API 충돌
  • Spring Boot 3.x는 jakarta.servlet 사용

해결:

  • Spring Boot 방식으로 컨트롤러 변경
  • @WebServlet@Controller + @GetMapping/@PostMapping
  • HttpServlet 상속 → Spring MVC 방식

3. 의존성 주입 설정

문제:

  • MenuService를 직접 인스턴스화하여 사용
  • Spring의 의존성 주입 활용 안 함

해결:

// Before
private final MenuService menuService = new MenuService();

// After
private final MenuService menuService;

public MenuController(MenuService menuService) {
    this.menuService = menuService;
}

4. JSP 뷰 리졸버 설정

문제:

  • JSP 파일을 찾지 못하는 404 오류

해결:
application.properties에 올바른 설정 추가:

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

5. CH5 서블릿/JSP 사용 실패 이유

Spring Boot 3.x에서 JSP 지원 제한

  • 문제: Spring Boot 3.x부터 JSP 지원이 공식적으로 제한됨

  • 에러: JSP 파일들이 404 에러로 접근 불가

  • 원인:

    • Spring Boot 3.x는 Jakarta EE 기반으로 변경
    • JSP 컴파일러 설정이 복잡해짐
    • 내장 톰캣에서 JSP 처리 방식 변경

    따라서 마지막 과제는 JSP 대신 Thymeleaf로 해결했다.

0개의 댓글