CS

[Backend] JSP

KJihun 2025. 4. 2. 11:01
728x90

JSP(JavaServer Pages)


Java 기반 웹 페이지 생성 기술로,

HTML 코드 안에 Java 코드를 삽입할 수 있게 해주는 서버 사이드 웹 프로그래밍 기술이다.

JSP는 Java EE(Jakarta EE)의 일부로, 웹 애플리케이션에서 동적인 HTML 페이지를 만들기 위해 사용되었지만,

현재는 유지보수, 구조적 한계, 현대적 웹 개발 트렌드에 뒤처져 거의 사용되지 않는다.

 

 

JSP 작동 방식

  1. 브라우저는 서버에 JSP 파일 요청 
  2. 서버는 브라우저의 요청에 해당하는 JSP 파일이 서버측에 있는지 조회 후, 존재하면 서블릿(Servlet) 으로 변환
  3. 서블릿 코드를 컴파일해서 .class 파일 생성
  4. 서블릿이 실행되면서, HTML을 생성
  5. HTML을 클라이언트에게 전송

즉, jsp 코드의 return 값은 HTML 코드이다

 

 

JPS 예시코드

<%@ page contentType="text/html; charset=UTF-8" %>
<html>
  <body>
    <h1>안녕하세요!</h1>
    <p>현재 시간: <%= new java.util.Date() %></p>
  </body>
</html>
단순화한 컴파일(.Class) 된 코드
public final class hello_jsp extends HttpServlet {

    public void _jspService(HttpServletRequest request, HttpServletResponse response)
        throws IOException, ServletException {

        response.setContentType("text/html; charset=UTF-8");
        JspWriter out = new JspWriterImpl(response.getWriter());

        out.write("<html>\n");
        out.write("  <body>\n");
        out.write("    <h1>안녕하세요!</h1>\n");
        out.write("    <p>현재 시간: ");
        out.write(new java.util.Date().toString());
        out.write("</p>\n");
        out.write("  </body>\n");
        out.write("</html>");
    }
}
 

HTML 코드(return값)

<html>
  <body>
    <h1>안녕하세요!</h1>
    <p>현재 시간: Wed Apr 02 2025 16:45:00 KST</p>
  </body>
</html>

 

 

 

단점

  • 서버 리소스를 많이 사용함 (JSP → Servlet → HTML)
  • Service 로직과 View(HTML)가 뒤섞임현대적 MVC 구조에 맞지 않음, 유지보수 어려움
  • 자바 코드가 HTML에 섞여 객체지향의 장점인 협업/디자인 분리 어려움

이러한 이유로 잘 쓰이지 않게 된 기술이지만, 오래된 레거시 시스템에서는 사용할 수도 있다