Web Programming/JSP

[JSP] JSP란 무엇인가

IT수정 2024. 9. 26. 15:24

JSP

웹 프로그래밍 언어들 중 하나로, 자바를 기반으로 한다. 그렇기 때문에 자바 언어가 갖는 특징들을 그대로 이어받고 있다.

 

jsp 예제 코드

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <title>인사 페이지</title>
</head>
<body>
    <h2>안녕하세요!</h2>
    <form method="post">
        이름: <input type="text" name="name" />
        <input type="submit" value="인사하기" />
    </form>

    <%
        String name = request.getParameter("name");
        if (name != null && !name.isEmpty()) {
            out.println("<h3>안녕하세요, " + name + "님!</h3>");
        }
    %>
</body>
</html>

 

위의 코드는 jsp 페이지의 아주 기본적이고 핵심적인 형태이다. <%@... %>, <%,,, %>, <%=... %> 기호가 보일 텐데, 이 부분들이 동적인 부분을 담당한다.

 

JSP의 특징

JSP는 동적 페이지를 생성하기 위한 프로그래밍 언어이다.

JSP는 컴포넌트 기반에서 개발할 수 있는 언어이다.

 

Servlet 이해하기

JSP라는 기술 이전에 탄생되었던 JSP 기반으로 볼 수 있는 서블릿에 대해 알아보자. 서블릿은 확장 CGI 방식으로 서블릿이 가지는 형태는 하나의 완전한 자바파일의 형태를 가진다.

 

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("/greet")
public class GreetServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 요청 파라미터에서 이름 가져오기
        String name = request.getParameter("name");

        // 응답 설정
        response.setContentType("text/html;charset=UTF-8");
        java.io.PrintWriter out = response.getWriter();

        // 인사 메시지 출력
        if (name != null && !name.isEmpty()) {
            out.println("<h1>안녕하세요, " + name + "님!</h1>");
        } else {
            out.println("<h1>이름을 입력해주세요!</h1>");
        }
    }
}

 

JSP와는 달리 자바 코드가 있고 그 안에 HTML 태그의 형태 같은 부분들이 중간에 삽입되어 있는게 보일 것이다. 간략하게 이해하자면 자바 코드 안에 HTML 태그들이 포함되어 있다고 생각하면 된다. 기본적으로 하나의 JSP 페이지는 하나의 서블릿으로 변환이 되고, 다시 컴파일 되어 실행된다. 서블릿은 하나의 완전한 자바 프로그램으로 컴파일을 거친 후에 실행 가능한 상태가 된다.

 

서블릿은 HTML과 이미지 등이 자바 코드 속에 어우러져 있기 때문에 디자이너는 디자인 변경 문제가 발생했을 때 자바 프로그래머의 도움이 필요하다. 마찬가지로 자바 코드 안에 디자인적 요소가 함께 있기 때문에 디자이너의 도움도 필요하다. 결국 서블릿은 동적인 부분과 정적인 부분을 분리하기에 어려움이 따르게 된다.

 

하지만 서블릿의 특성과 JSP의 특성을 살려서 서로 상호보완적인 관계로, 즉 JSP는 화면 출력 부분을 맡고 서블릿은 처리 부분을 맡는게 설계적인 측면에서 훨씬 효율적인 구성을 갖게 된다.

'Web Programming > JSP' 카테고리의 다른 글

[JSP] JSP 동작원리(톰켓)와 서블릿  (2) 2024.09.27
[JSP] 이클립스 설치  (3) 2024.09.26
[JSP] Tomcat 설치  (1) 2024.09.26
[JSP] JDK 설치  (0) 2024.09.26
[JSP] 웹과 동적페이지  (1) 2024.09.26