CS
[Backend] JSP
KJihun
2025. 4. 2. 11:01
728x90
JSP(JavaServer Pages)
Java 기반 웹 페이지 생성 기술로,
HTML 코드 안에 Java 코드를 삽입할 수 있게 해주는 서버 사이드 웹 프로그래밍 기술이다.
JSP는 Java EE(Jakarta EE)의 일부로, 웹 애플리케이션에서 동적인 HTML 페이지를 만들기 위해 사용되었지만,
현재는 유지보수, 구조적 한계, 현대적 웹 개발 트렌드에 뒤처져 거의 사용되지 않는다.
JSP 작동 방식
- 브라우저는 서버에 JSP 파일 요청
- 서버는 브라우저의 요청에 해당하는 JSP 파일이 서버측에 있는지 조회 후, 존재하면 서블릿(Servlet) 으로 변환
- 서블릿 코드를 컴파일해서 .class 파일 생성
- 서블릿이 실행되면서, HTML을 생성
- 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에 섞여 객체지향의 장점인 협업/디자인 분리 어려움
이러한 이유로 잘 쓰이지 않게 된 기술이지만, 오래된 레거시 시스템에서는 사용할 수도 있다