JSP란?
JSP(JavaServer Pages)는 자바를 기반으로 하는 서버 사이드 스크립트 언어입니다. HTML 코드 안에 자바 코드를 삽입하는 방식으로 웹 페이지를 동적으로 생성하게 해줍니다. 서버에서 실행되며, 결과적으로 클라이언트에게는 HTML을 전송하게 됩니다.
JSP는 Servlet 기술을 기반으로 하며, 사실상 Servlet의 특별한 형태라고 할 수 있습니다. Servlet은 자바 코드 내에 HTML을 삽입하는 반면, JSP는 HTML 코드 안에 자바 코드를 삽입합니다. 이는 웹 개발자들에게 더 친숙하며 직관적인 개발 방식을 제공합니다.
JSP의 작동 원리
- 클라이언트가 JSP 페이지를 요청합니다.
- JSP 엔진이 이 요청을 받아들입니다.
- 만약 이 JSP 페이지가 최초 요청이라면, JSP 엔진은 JSP 페이지를 Servlet으로 변환합니다.
- JSP 엔진이 이 Servlet 코드를 컴파일하여 실행 가능한 바이트코드로 변환합니다.
- 변환된 Servlet이 서버에서 실행되어, 동적인 HTML 페이지를 생성합니다.
- 생성된 HTML 페이지가 클라이언트에게 전송되어 웹 브라우저에서 표시됩니다.
JSP의 장점
- MVC 패턴 적용: JSP는 MVC(Model-View-Controller) 디자인 패턴을 쉽게 적용할 수 있습니다. JSP는 주로 View(표현) 부분을 담당하게 됩니다.
- 태그 라이브러리: JSP는 사용자 정의 태그를 지원하므로, 복잡한 기능을 재사용 가능한 컴포넌트로 캡슐화할 수 있습니다. 이는 코드의 재사용성과 유지보수성을 향상시킵니다.
- 분리된 로직과 표현: 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 문법
- 스크립트릿(Scriptlet): 스크립트릿은
<% ... %>
로 둘러싸인 자바 코드입니다. 이 코드는 서블릿의_jspService()
메서드 안에서 실행됩니다.
<% out.println("Hello, World!"); %>
- 표현식(Expression): 표현식은
<%= ... %>
로 둘러싸인 자바 코드이며, 결과를 문자열로 반환하여 HTML로 출력합니다.
<p>Current Time: <%= new java.util.Date() %></p>
- 선언(Declaration): 선언은
<%! ... %>
로 둘러싸인 자바 코드이며, 메서드나 필드를 정의하는 데 사용됩니다.
<%!
int count = 0;
public void incrementCount() {
count++;
}
%>
- 지시자(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" %>
- 액션(Action): 액션은 특정 기능을 수행하는 JSP 요소입니다. 액션은 XML 스타일의 태그로 표현되며, 일반적으로 액션 태그는 코어 액션, 표준 액션 및 사용자 정의 액션으로 분류됩니다.
<jsp:include page="header.jsp" />
<jsp:forward page="nextPage.jsp" />
<jsp:useBean id="user" class="com.example.User" />
- 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 |