JSP와 자바 서블릿

MX ·2025년 1월 8일

JSP

자바 코드를 웹 페이지에서 실행할 수 있게 한 파일이다. 당연히 웹 표준은 아니고, Java EE/Jakarta EE의 명세 중 하나다.

JSP와 웹 컨테이너가 있으면 프론트엔드와 백엔드가 하나로 융합된 형태를 가진다. 구조 자체는 간단하다. 다만 배우고 작성하는 과정이 복잡할 뿐...(Express.js 같은 프레임워크가 포트 열어 연결할 거 다 열고 하위 모듈들에 라우팅하는 코드를 작성할 시간에 이놈은 서블릿마다 여러 JSP에 어떻게 연결할까 고민하게 된다)

프론트까지 자바가 JSP로 잡아먹은 경우

그래서 이것을 어떻게 작성하느냐...

JSP 작성

확장자가 jsp인 파일을 만든다.

  • 모듈 임포트는 <%@ page import="model.Board" %>
  • HTML 파트 작성 전 <%@ page contentType="text/html;charset=UTF-8" language="java" %>는 꼭 써준다.
  • 자바 코드는 <%%>으로 감싼다.
  • 변수값을 HTML Element 안에 넣으려면 <%=(변수명)%>과 같이 쓴다.
  • <%-- --%>로도 주석을 적을 수 있다.

예시(body 파트만 작성)

  <body>
    <%
      String title = request.getAttribute("title").toString();
      String content = request.getAttribute("content").toString();

    %>
    <div id="post" style="display:flex;flex-direction: column;">
      <div id="title" class="post-inner"><%=title%></div>
      <div id="content" class="post-inner"><%=content%></div>
      <a href="/board">되돌아가기</a>
    </div>
  </body>

이제 여기에 CSS 스타일도 넣을 수 있고, 다른 것도 다 넣을 수 있다. 자바 코드를 적을 수 있는 방법이 추가된 것만 빼면 프론트 쪽 기본 기술 명세와 크게 차이나지 않는 편.

  • 한 jsp를 다른 jsp 파일에서 보여주려면 다음과 같이 한다.
<jsp:include page=(페이지 경로)></jsp:include>
  • c:forEach로 반복 추가가 가능하다.
<c:forEach items="${elem}" var="list">
   <div>{{elem.text}}</div>
</c:Foreach>
  • vue.js가 이거 보고 따라하다가 개량한 것이 아닌가 의심된다
profile
공포를 이기고 걸어 나가자

1개의 댓글

comment-user-thumbnail
2025년 1월 8일

안녕하세요! 개발자 준비하시는 분이나 현업에 종사하고 계신 분들만 할 수 있는 시급 25달러~51달러 LLM 평가 부업 공유합니다~ 제 블로그에 자세하게 써놓았으니 관심있으시면 한 번 읽어봐주세요 :)

답글 달기