JSP & 서블릿의 정의 및 메소드

YeHee·2024년 12월 6일

⏰ 2024.12.05 (D+41)

1. JSP (JavaServer Pages) 정의

  • JSP는 Java로 동적인 웹 페이지를 생성할 수 있도록 도와주는 기술
  • HTML 코드에 Java 코드를 삽입할 수 있는 기능을 제공하여 서버 측에서 동적으로 콘텐츠를 생성하는 방식으로 웹 애플리케이션을 개발할 수 있다.

💡 JSP의 주요 특징

☑️ 동적 콘텐츠 생성

  • JSP는 서버에서 동적으로 웹 페이지를 생성 가능
  • HTML과 Java 결합: JSP 파일은 기본적으로 HTML 형식으로 작성
  • Java 코드를 포함할 수 있는 특수한 태그(<% %>)를 사용
    ☑️ 편리한 유지보수
  • Java와 HTML을 분리하여 코드의 유지보수가 용이하다
    ☑️ 서블릿 변환
  • JSP 파일은 최종적으로 서블릿 코드로 변환되어 실행

📢 JSP의 기본 구성 요소

✅ Directive

  • JSP의 지침을 제공하며, 페이지의 전반적인 동작 방식을 설정
    (예: <%@ page %>)
    ✅ Scriptlet
  • Java 코드를 삽입하는 부분으로, <% %>로 구분
    ✅ Expression
  • 값을 출력하는 부분으로, <%= %>로 사용
    ✅ Declaration
  • 변수나 메서드를 선언하는 부분으로, <%! %>로 사용
    ✅ Action
  • JSP 페이지 내에서 액션을 수행하는 태그
    (예: <jsp:include>, <jsp:forward>)

2. 서블릿 (Servlet) 정의

  • 서블릿(Servlet)은 Java로 작성된 서버 측 프로그램으로, 클라이언트의 요청을 처리하고 응답을 생성하는 역할
  • 주로 HTTP 프로토콜을 사용하여 웹 애플리케이션에서 동적인 콘텐츠를 제공하는 데 사용

💡 서블릿의 주요 특징

☑️ 서버측 프로그래밍
: 클라이언트의 요청을 받아서 처리하고, 그 결과를 클라이언트에게 전달
☑️ 플랫폼 독립성
: Java 언어로 작성되어 플랫폼에 구애받지 않으며, 웹 서버에서 실행
☑️ 상태 없는 프로토콜
: HTTP는 상태 비저장(stateless) 프로토콜이기 때문에 서블릿은 세션 관리 및 상태 유지 기능을 제공

📢 서블릿의 주요 구성 요소

✅ Servlet API
: 서블릿과 JSP는 javax.servlet 패키지를 사용하여 클라이언트 요청 및 응답을 처리
✅ 서블릿 컨테이너(서블릿 엔진)
: 서블릿을 관리하고 실행하는 서버 소프트웨어입니다. Tomcat, Jetty 등이 유명한 서블릿 컨테이너

3. 서블릿의 주요 메소드

  • 서블릿은 javax.servlet.Servlet 인터페이스를 구현
  • 이를 확장한 HttpServlet 클래스를 상속하여 구현

1) init():

  • 서블릿이 처음 로드될 때 호출
  • 서블릿 초기화 작업을 수행하며, 서블릿이 컨테이너에 의해 생성될 때 한 번만 호출
  • 서블릿에 대한 설정을 초기화 가능
public void init() throws ServletException {
    // 서블릿 초기화 작업
}

2) service():

  • 클라이언트의 요청을 처리하는 메소드, 모든 요청마다 호출
  • HTTP 요청을 처리하는 HttpServlet을 상속하면 service() 메소드 대신 doGet(), doPost() 등 HTTP 메소드에 맞는 메소드를 오버라이드 가능
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
    // 요청 처리 코드
}

3) doGet():

  • HTTP GET 요청을 처리하는 메소드
  • HttpServlet에서 오버라이드하여 사용
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // GET 요청 처리
}

4) doPost():

  • HTTP POST 요청을 처리하는 메소드
  • HttpServlet에서 오버라이드하여 사용
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // POST 요청 처리
}

5) destroy():

  • 서블릿이 컨테이너에서 제거되기 전에 호출
  • 자원 해제 등의 정리 작업을 수행
public void destroy() {
    // 서블릿 종료 시 작업
}

4. JSP와 서블릿의 차이점

특징 JSP 서블릿
용도 HTML과 Java를 결합하여 동적인 페이지를 생성 클라이언트 요청을 처리하고 응답을 생성
구성 HTML 코드와 Java 코드(스크립틀릿, 표현식 등) Java 코드만 포함 (클래스 기반)
실행 방식 서버가 JSP 파일을 서블릿으로 변환 후 실행 서블릿 클래스가 직접 실행
개발 용이성 HTML 코드와 결합하여 개발이 직관적임 Java 코드 작성 필요, 복잡할 수 있음
유지보수 HTML과 Java 코드가 섞여 있어 유지보수가 어려움 MVC 패턴을 적용하여 유지보수가 용이함
성능 서블릿으로 변환되기 때문에 성능은 서블릿과 비슷 직접적으로 서블릿으로 처리하기 때문에 더 직관적임

0개의 댓글