JSP란 (특징, 장단점, 샘플 코드 등)

헤일리의 개발 일지·2025년 3월 31일

JSP란?

  • JSP는 Java Server Pages의 줄임말로 자바 기반의 서버 측 스크립팅 기술.
  • 동적인 웹 페이지를 생성하기 위해 설계된 Java EE 표준 기술.
  • HTML 안에 Java 코드를 삽입할 수 있어서, 사용자가 요청할 때마다 서버에서 Java 코드가 실행되고 결과를 HTML로 변환해서 클라이언트(브라우저)에 보내주는 방식.

💡특징

Java 기반
Java 언어로 작성되기 때문에, Java의 강력한 라이브러리와 객체 지향 기능 활용 가능

서버 사이드 처리
클라이언트의 요청이 있을 때마다 서버에서 코드가 실행되고 HTML이 생성되어서 보안이 좋고 동적 페이지 구현에 적합

MVC 패턴에서의 역할 (View)
보통 JSP는 MVC(Model-View-Controller) 패턴에서 View 역할 즉, 데이터의 출력과 UI처리을 담당

⌨️ 예시 코드

<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
    <title>JSP 예제</title>
</head>
<body>
    <h1>Hello, JSP!</h1>
    <% 
        String name = "헤일리";
        out.println("안녕하세요, " + name + "님!");
    %>
</body>
</html>
  • 위 코드에서 <% ... %> 사이에 들어가는 게 Java 코드
  • 결과적으로 브라우저에는 HTML 형태로 출력됨

👍 JSP의 장점

  • HTML과 Java 코드를 함께 작성할 수 있어 편리함
  • Servlet보다 코드 작성이 간편하고 직관적
  • Java의 라이브러리를 쉽게 활용할 수 있음

👎 JSP의 단점

  • 비즈니스 로직과 뷰가 혼합되기 쉬움: 복잡한 페이지의 경우 유지보수가 어려워질 수 있음
  • 현대적인 웹 기술(React, Vue.js 등)에 비해 표현력이나 개발 효율이 떨어질 수 있음

⚒️ 강의 프로젝트 내 코드

[save.jsp]

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="hello.servlet.domain.member.Member" %>
<%@ page import="hello.servlet.domain.member.MemberRepository" %>
<%
  // request, response 사용 가능
  MemberRepository memberRepository = MemberRepository.getInstance();

  System.out.println("MemberSaveServlet.service");
  String username = request.getParameter("username");
  int age = Integer.parseInt(request.getParameter("age"));

  Member member = new Member(username, age);
  memberRepository.save(member);
%>
<html>
<head>
    <title>Title</title>
</head>
<body>
성공
<ul>
  <li>id=<%=member.getId()%></li>
  <li>username=<%=member.getUsername()%></li>
  <li>age=<%=member.getAge()%></li>
</ul>
<a href="/index.html">메인</a>
</body>
</html>
  • <%@ page import="hello.servlet.domain.member.MemberRepository" %> 로 import
  • <% ~~ %> 사이에 자바 코드 입력
  • <%= ~~ %> 사이에 입력 시 자바 코드 출력됨
  • <%...%> 로 감싸진 코드 제외하고 모두 그려지는 느낌
  • HTML 중간에 <% ~ %>를 사용해서 HTMl 중간에 자바 코드 출력

📌 참고

  • JSP는 예전에는 많이 쓰였지만 지금은 Spring 같은 Java 프레임워크와 함께 사용되거나, 다른 템플릿 엔진(Thymeleaf 등)으로 대체되는 경우가 많음

✍️ 끄적끄적

끄적끄적 공부 후기를 남겨보자면..
오랜만에 공부하느라 낯설면서도 재밌는 같기도 하군ㅎㅋㅋ

공부 손 놓고 흘러가는 대로 살고 있었는데, 뭔가 동기부여가 될만한 사건(?)이 있었거든요 하핳..

어쨌든 오랜만에 듣다가 방치된 강의를 통해 jsp를 공부해봤는데
jsp는 복잡한 코드짜기에는 쉽지 않을 것 같은 느낌이 팍팍든달까

그냥 한번쯤 경험해보는걸로 충분할 것 같다

그리고 Servlet, MVC 아는 듯.. 모르는 듯.. 이 느낌ㅋㅋ큐ㅠㅠㅠ
내일은 일단 MVC 강의 듣고, 조만간 Servlet 복습해야지

내일 또 글 쓸 수 있기를....🙏

0개의 댓글