일기장
Published 2023. 5. 25. 10:48
JSP 자세히 알아보기 웹개발

JSP란?

JSP(JavaServer Pages)는 자바를 기반으로 하는 서버 사이드 스크립트 언어입니다. HTML 코드 안에 자바 코드를 삽입하는 방식으로 웹 페이지를 동적으로 생성하게 해줍니다. 서버에서 실행되며, 결과적으로 클라이언트에게는 HTML을 전송하게 됩니다.

 

JSP는 Servlet 기술을 기반으로 하며, 사실상 Servlet의 특별한 형태라고 할 수 있습니다. Servlet은 자바 코드 내에 HTML을 삽입하는 반면, JSP는 HTML 코드 안에 자바 코드를 삽입합니다. 이는 웹 개발자들에게 더 친숙하며 직관적인 개발 방식을 제공합니다.

 

 

JSP의 작동 원리

  1. 클라이언트가 JSP 페이지를 요청합니다.
  2. JSP 엔진이 이 요청을 받아들입니다.
  3. 만약 이 JSP 페이지가 최초 요청이라면, JSP 엔진은 JSP 페이지를 Servlet으로 변환합니다.
  4. JSP 엔진이 이 Servlet 코드를 컴파일하여 실행 가능한 바이트코드로 변환합니다.
  5. 변환된 Servlet이 서버에서 실행되어, 동적인 HTML 페이지를 생성합니다.
  6. 생성된 HTML 페이지가 클라이언트에게 전송되어 웹 브라우저에서 표시됩니다.

 

JSP의 장점

  1. MVC 패턴 적용: JSP는 MVC(Model-View-Controller) 디자인 패턴을 쉽게 적용할 수 있습니다. JSP는 주로 View(표현) 부분을 담당하게 됩니다.
  2. 태그 라이브러리: JSP는 사용자 정의 태그를 지원하므로, 복잡한 기능을 재사용 가능한 컴포넌트로 캡슐화할 수 있습니다. 이는 코드의 재사용성과 유지보수성을 향상시킵니다.
  3. 분리된 로직과 표현: JSP는 비즈니스 로직과 표현 로직을 분리할 수 있습니다. 이는 코드의 가독성과 유지보수성을 향상시킵니다.

 

 

JSP 예시

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>My First JSP Page</title>
</head>
<body>
    <h1>Welcome to My JSP Page!</h1>
    <p>Current Time: <%= new java.util.Date() %></p>


</body>
</html>

위의 코드는 HTML 코드 내에 자바 코드(<%= new java.util.Date() %>)를 삽입한 JSP 페이지의 예시입니다. 이 코드는 현재 시간을 동적으로 생성하여 표시합니다.

 

이처럼 JSP는 HTML과 자바 코드를 결합하여 동적인 웹 페이지를 생성하는데 사용됩니다. 이를 통해 사용자와의 상호작용, 데이터베이스에서 데이터의 조회 및 수정 등 다양한 기능을 구현할 수 있습니다.

 


 

JSP 문법

  1. 스크립트릿(Scriptlet): 스크립트릿은 <% ... %>로 둘러싸인 자바 코드입니다. 이 코드는 서블릿의 _jspService() 메서드 안에서 실행됩니다.
<% out.println("Hello, World!"); %>

 

  1. 표현식(Expression): 표현식은 <%= ... %>로 둘러싸인 자바 코드이며, 결과를 문자열로 반환하여 HTML로 출력합니다.
<p>Current Time: <%= new java.util.Date() %></p>

 

  1. 선언(Declaration): 선언은 <%! ... %>로 둘러싸인 자바 코드이며, 메서드나 필드를 정의하는 데 사용됩니다.
<%! 
    int count = 0; 
    public void incrementCount() {
        count++;
    }
%>

 

  1. 지시자(Directive): 지시자는 <%@ ... %>로 둘러싸인 코드로, 페이지 설정이나 태그 라이브러리를 가져오는 등의 기능을 합니다. 페이지, include, taglib 지시자가 있습니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ include file="header.jsp" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

 

  1. 액션(Action): 액션은 특정 기능을 수행하는 JSP 요소입니다. 액션은 XML 스타일의 태그로 표현되며, 일반적으로 액션 태그는 코어 액션, 표준 액션 및 사용자 정의 액션으로 분류됩니다.
<jsp:include page="header.jsp" />
<jsp:forward page="nextPage.jsp" />
<jsp:useBean id="user" class="com.example.User" />

 

  1. EL(Expression Language)와 JSTL(JSP Standard Tag Library): EL과 JSTL은 코드의 가독성을 향상시키고 스크립트릿 사용을 줄이는 데 도움이 됩니다.
${sessionScope.username}
<c:out value="${user.name}" />
<c:if test="${user.age > 18}">You are an adult.</c:if>

 

 

'웹개발' 카테고리의 다른 글

데이터의 변환  (0) 2023.05.27
자바 스프링 예외처리  (0) 2023.05.26
세션(Session)  (0) 2023.05.24
쿠키(Cookie)  (0) 2023.05.24
GetMapping, PostMapping  (0) 2023.05.20
profile

일기장

@공군급양

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!