본문 바로가기
Programming & Platform/Java

Servlet과 JSP - 웹 개발의 핵심, 쉽게 알아보기

by 코드스니펫 2024. 11. 18.
반응형

웹 개발에서 Servlet과 JSP는 빠질 수 없는 핵심 기술입니다.

 

이 두 기술은 서로 긴밀하게 연관되어 있으면서도 각기 다른 역할을 수행합니다.

 

마치 건물을 지을 때 기둥(Servlet)이 건물을 지탱하고, 벽과 인테리어(JSP)가 건물의 모습을 완성하는 것과 같습니다.

 

이 글에서는 Servlet과 JSP의 개념과 차이점을 간단하고 명확하게 설명하고, 웹 개발에서 어떻게 활용되는지 알아보겠습니다.

 

Servlett과 JSP 비교
Servlett과 JSP 비교

Servlet과 JSP - 웹 개발의 핵심, 쉽게 알아보기

 

Servlet이란 무엇일까요?

 

Servlet자바 언어로 작성된 서버프로그램으로, 클라이언트의 요청을 받아 처리하고 그 결과를 다시 클라이언트에게 전달하는 역할을 합니다.

 

즉, 웹 서버의 동작을 확장하여 동적인 웹 페이지를 생성할 수 있도록 해줍니다.

 

 

Servlett과 JSP 비교
Servlett과 JSP 비교

 

Servlet 예제 코드

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/helloServlet")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        response.getWriter().println("<h1>Hello, Servlet!</h1>");
    }
}

 

  • doGet() 메서드: 클라이언트의 GET 요청을 받아 처리합니다.
  • 브라우저에서 `/helloServlet` 경로로 접근하면 "Hello, Servlet!" 메시지를 출력합니다.

 

JSP란 무엇일까요?

 

JSP(JavaServer Pages)HTML 페이지에 자바 코드를 삽입하여 동적인 웹 페이지를 생성할 수 있도록 해주는 기술입니다.

 

즉, HTML 코드 안에 자바 로직을 직접 작성하여 데이터베이스에 접근하거나 복잡한 계산을 수행할 수 있습니다.

 

 

JSP 예제 코드 (hello.jsp)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Hello JSP</title></head>
<body>
<%
    String name = request.getParameter("name");
    if (name != null) {
%>
    <h1>Hello, <%= name %>!</h1>
<%
    } else {
%>
    <h1>Hello, JSP!</h1>
<%
    }
%>
</body>
</html>

 

  • URL에 `?name=John`을 추가하면 "Hello, John!"이 출력됩니다.
  • JSP 페이지에서 자바 코드를 사용해 동적으로 콘텐츠를 생성할 수 있습니다.

 

Servlett과 JSP 비교
Servlett과 JSP 비교

 

Servlet과 JSP의 차이점

 

구분 Servlet JSP
구성 순수 자바 코드 HTML + 자바 코드
역할 요청 처리, 응답 생성 동적 페이지 생성
MVC 패턴에서의 역할 Controller View

 

Servlet과 JSP는 어떻게 함께 사용될까요?

 

Servlet과 JSP는 서로의 강점을 살려 효율적으로 협력할 수 있습니다.

 

MVC 패턴을 사용하면, Servlet은 클라이언트의 요청을 받아 처리하고, JSP는 결과를 화면에 출력하는 방식으로 역할을 분담합니다.

 

  • Servlet이 클라이언트 요청을 받아 데이터베이스에서 필요한 정보를 가져옵니다.
  • 이후 JSP에 데이터를 전달하여 사용자가 볼 수 있는 HTML 페이지로 렌더링합니다.

 

Servlet과 JSP를 활용한 MVC 예제

 

Servlet 코드 (Controller 역할)

@WebServlet("/user")
public class UserServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String username = "John Doe"; // 예시 데이터
        request.setAttribute("username", username);
        request.getRequestDispatcher("user.jsp").forward(request, response);
    }
}

 

 

 

 

 

 

Servlett과 JSP 비교
Servlett과 JSP 비교

 

2.JSP 코드 (user.jsp - View 역할)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>User Page</title></head>
<body>
    <h1>Welcome, <%= request.getAttribute("username") %>!</h1>
</body>
</html>

 

 

  • Servlet(UserServlet)이 데이터를 처리한 후, JSP 페이지로 전달합니다.
  • JSP(user.jsp)는 전달받은 데이터를 출력합니다.

 

Servlet과 JSP의 협업: 왜 중요한가?

 

  • 유지 보수성 향상: 비즈니스 로직(Servlet)과 프레젠테이션(JSP)을 분리하여 유지 보수가 쉬워집니다.
  • 재사용성: 여러 Servlet이 하나의 JSP를 재사용할 수 있어 코드 중복을 줄일 수 있습니다.
  • 유연한 설계: 데이터 처리와 프런트엔드의 변경이 독립적으로 이루어질 수 있습니다.

 

마치며

Servlet과 JSP는 서로 다른 특징을 가지고 있지만, 웹 개발에서 서로 보완하며 사용됩니다.

 

Servlet은 웹 애플리케이션의 핵심 로직을 담당하고, JSP는 사용자에게 보여지는 화면을 구성하는 데 사용됩니다.

 

이 두 기술을 효과적으로 활용하면, 유연하고 확장성이 뛰어난 애플리케이션을 개발할 수 있습니다.

 

이제 Servlet과 JSP의 역할을 이해하고, 효율적인 웹 애플리케이션을 설계해 보세요! 🌟

 

▼ 함께 보면 좋은 글 ▼

javascript 배열 안 숫자 중 최대값 찾는 다양한 방법 - 알고리즘 풀이
javascript 변수 선언 방법 3가지 특징, 비교 (var, let, const)
파이어베이스 파이어스토어 데이터 가져오기 - 웹 javascript 코드 제공
javascript와 spring의 개념, 특징, 장점, 비교 및 앞으로의 전망
javascript 문법 과제 숫자 맞추기 게임