SpringBoot

JSP 란?

Terror123 2025. 1. 21. 16:11

개요

  • JSP에 대해 이해하고 파악할 수 있습니다


JSP란 무엇인가

  • HTML 코드에 JAVA 코드를 넣어 동적웹페이지를 생성하는 웹어플리케이션 도구이다
  • JSP가 실행되면 자바 서블릿으로 변환되며, 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고 생성된 데이터를 웹페이지와 함께 클라이언트로 응답한다
  • 이는 @Controller를 통한 JavaSpring 서버 자체적으로 클라이언트에게 동적,정적인 웹페이지(View 페이지)를 반환하는 경우 사용된다
  • @RestController의 경우 단순하게 데이터만 응답하기위한 API용도로 사용되어 서블릿과정만 거치게된다

예시

  • @Controller와, @RestController의 예시를 통해 살펴보자

@Controller

  1. 클라이언트의 GET /hello 요청
  2. 디스패처 서블릿 요청 수신
  3. 디스패처 서블릿이 올바른 컨트롤러를 찾은후, 매핑시킵니다
  4. 컨트롤러에서는 요청을 처리하고, JSP 파일 이름을 뷰 이름으로 반환합니다
  5. JSP파일을 뷰로 반환할시, JSP는 내부적으로 서블릿으로 변환되어 동작됩니다
    5-1. Spring이 ViewResolver를 통해 JSP파일의 경로 확인 (/WEB-INF-views/hello.jsp)
    5-2. JSP 파일은 최초 실행시, JSP엔진 (Jasper)에 의해 서블릿 (Java 클래스)로 변환됩니다
    • Ex) hello.jsp -> org.apache.jsp.hello_jsp
  6. 서블릿의 service() 메서드가 호출되며 현재 들어온 요청이 doGet(),doPost() ... 등 어디인지 확인하고 보냅니다
  7. JSP 내부의 HTML, JSP 태그, EL(Expression Language) 등은 서블릿 코드로 변환되어 클라이언트에 HTML응답을 생성합니다

@RestController

  1. 클라이언트의 GET /hello 요청
  2. 디스패처 서블릿 요청 수신
  3. 디스패처 서블릿이 올바른 컨트롤러를 찾은후, 매핑시킵니다
  4. 컨트롤러에서는 이를 처리하고, 디스패처 서블릿으로 응답을 보냅니다
  5. 디스패처 서블릿에서 다시 클라이언트로 데이터를 응답합니다

오늘 나는 무엇을 알았는가?

  • @Controller,@RestController든 일단 들어오는 동작은 전부 동일하다
  • @Controller
    • 응답값 반환시, JSP가 활용되며, 그 내부적으로는 서블릿으로 변환되어 동작된다
  • @RestController
    • 응답값 반환시, 바로 디스패처 서블릿으로 넘어가, 클라이언트에게 반환한다

참조 문헌

https://javacpro.tistory.com/43