YTCW

servlet 과 jsp(javaServer Pages) 차이점 본문

java

servlet 과 jsp(javaServer Pages) 차이점

YTCW 2024. 10. 8. 09:50

서블릿(Servlet)과 JSP(JavaServer Pages)는 모두 Java를 기반으로 한 웹 애플리케이션 개발에 사용되지만, 그 목적과 사용 방식에서 차이가 있습니다.

서블릿(Servlet)

정의: 서블릿은 Java 클래스로, HTTP 요청을 처리하고 응답을 생성하는 서버 측 컴포넌트입니다.

  • 역할: 동적으로 웹 페이지를 생성하기 위한 로직을 작성하는 데 사용됩니다. 데이터베이스와의 상호작용, 비즈니스 로직 처리 등이 주된 역할입니다.
  • 구조: 순수한 Java 코드로 작성되며, HTML과 같은 응답 콘텐츠는 Java 코드 안에서 문자열로 생성됩니다.
  • 예시:
     
     
  • 장점: 강력한 제어가 가능하며, 모든 처리가 Java 코드로 이루어져 있어 유연성이 높습니다.
  • 단점: HTML이나 다른 출력 데이터를 Java 코드 안에 직접 작성해야 하기 때문에 유지보수가 어렵고 코드가 복잡해질 수 있습니다.
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    response.setContentType("text/html"); 
    PrintWriter out = response.getWriter(); 
    out.println("<html><body>"); 
    out.println("<h1>Hello Servlet</h1>"); 
    out.println("</body></html>"); 
}

JSP (JavaServer Pages)

정의: JSP는 HTML 파일 내에 Java 코드를 삽입하여 동적인 웹 페이지를 생성할 수 있는 기술입니다. HTML 코드에 Java 코드를 섞어서 작성할 수 있습니다.

  • 역할: 주로 사용자에게 보여지는 화면을 구성하는 데 사용됩니다. 즉, 프리젠테이션 로직을 담당하며, 서블릿에서 처리된 데이터를 화면에 보여주는 역할을 합니다.
  • 구조: HTML과 함께 Java 코드를 섞어 사용할 수 있으며, JSP 페이지는 내부적으로 서블릿으로 변환되어 실행됩니다.
  •  
  • 장점: HTML 파일과 유사하게 작성되므로 웹 디자이너가 작업하기 쉽습니다. 서블릿에 비해 더 간결하게 웹 페이지를 작성할 수 있습니다.
  • 단점: 비즈니스 로직이 HTML과 섞일 경우 코드가 복잡해질 수 있으며, 로직이 많은 페이지에서는 비효율적일 수 있습니다.
<html> 
    <body> 
        <h1>Hello JSP</h1> 
        <% 
            out.println("This is a dynamic message generated by JSP.");
        %>
    </body>
</html>

차이점 요약

특성서블릿(Servlet)JSP(JavaServer Pages)

주요 역할 비즈니스 로직, 데이터 처리 사용자에게 보여지는 화면 구성
코드 구조 순수 Java 코드로 작성 HTML 내에 Java 코드를 삽입
주요 용도 서버 요청 처리 및 응답 생성 HTML 기반의 동적인 웹 페이지 생성
유연성 높은 유연성 (순수 Java 코드) 작성이 간편하나 복잡한 로직 처리에는 부적합
컴파일 방식 컴파일된 Java 클래스 내부적으로 서블릿으로 변환 후 실행

 

서블릿은 로직 처리가 주로 필요한 부분에, JSP는 프론트엔드 화면을 구성하는 부분에 주로 사용됩니다. 보통 실무에서는 이 둘을 함께 사용하여 MVC 패턴을 구현하는 경우가 많습니다.

'java' 카테고리의 다른 글

java Lambda  (1) 2024.09.13
java 내부 클래스  (0) 2024.09.13
java singleton  (0) 2024.09.10
java lombok  (0) 2024.09.10
java MVC 패턴  (2) 2024.09.10