# 개요

톰캣을 설치해서 사용할 때는 바로 jsp 파일을 읽을 수 있었는데

내장 톰캣을 사용하니 jsp 파일을 읽을 수가 없다.

JSP를 서블릿으로 변환시켜주는 Jasper에 대해 알아보자.

 


 

# JSP에 대한 오해

JSP가 여러모로 불편하기 때문에 안써왔어서(물론 앞으로도 쓸 생각은 별로 없음..) 잘 몰랐는데, 나는 여태 JSP가 HTML처럼 그냥 화면에 보여주는 줄 알았다.

그런데 그게 아니고, JSP 파일을 컴파일 해서 PrintWriter같은 클래스를 이용해서 HTML처럼 보이게 출력해주는 것이었다.

 

## 자바로 HTML 그리기

기존에 자바로 HTML을 그릴 때 방식을 보면

import java.io.*;

public class HTMLPrinter {
    public static void main(String[] args) {
        String fileName = "output.html"; // HTML 파일명

        try {
            PrintWriter writer = new PrintWriter(new FileWriter(fileName));

            // HTML 페이지 시작
            writer.println("<!DOCTYPE html>");
            writer.println("<html>");
            writer.println("<head>");
            writer.println("<title>간단한 HTML 페이지</title>");
            writer.println("</head>");
            writer.println("<body>");
            writer.println("<h1>Hello, World!</h1>");
            writer.println("<p>This is a simple HTML page generated using Java.</p>");
            writer.println("</body>");
            writer.println("</html>");

            // 파일 닫기
            writer.close();

            System.out.println("HTML 파일이 생성되었습니다. 파일명: " + fileName);
        } catch (IOException e) {
            System.out.println("파일 생성 중 오류가 발생했습니다: " + e.getMessage());
        }
    }
}

이런 방식으로 일일이 자바 코드 내에서 HTML태그를 사용해야 했었다. 그리고  HTML태그 String에 자바에서 사용하는 변수나 객체를 추가하는 방식으로 사용했다.

하지만 이런 방식은 매우 번거롭고 불편하다.

 

## HTML to JSP

정적 페이지인 HTML에 자바 데이터를 동적으로 사용하기 위해 JSP가 만들어졌다. 사용 방법도 html 확장자를 jsp로 바꿔 주고 스크립트릿만 추가해주면 된다.

그러나 JSP는 자바코드에 의한 동적인 페이지가 되었기 때문에 이를 컴파일을 해주어야 한다.

 


 

# Jasper

Jasper는 JSP파일을 서블릿 코드로 변환하고 컴파일 하여 HTML 파일처럼 실행하는 톰캣의 JSP 엔진이다.

JSP파일이 그냥 화면에 HTML처럼 보여지는 것이 아니라 톰캣의 Jasper를 통해 서블릿 코드로 변환하고 이를 HTML로 그려주는 것이다.

 


 

# 결론

톰캣을 설치하면 Jasper가 같이 설치되어 있기 때문에 별 신경쓰지 않고 바로 JSP를 읽을 수 있지만, Embedded Tomcat의 경우는 그렇지 않기 때문에 라이브러리를 따로 추가해야 한다.

 


 

# Reference

 

JSP를 서블릿으로 변환시켜주는 Jasper

JSP(Java Server Pages)는 HTML에 Java코드를 편리하게 적을 수 있도록 도와줍니다. 그런데 HTML에 Java코드를 적다 보니 많은 분들께서 오해하는 것이 있습니다. 바로 브라우저의 화면에 띄워지는 것이 JSP

thisisnew-storage.tistory.com

 

+ Recent posts