JSP 스크립트 요소
- JSP 페이지에서 Java 코드를 사용할 수 있도록 하는 요소
- JSP 페이지에서 동적으로 HTML을 생성하거나, DB와 연동해서 데이터 처리 가능
# 스크립트릿 (ScriptLet)
<% %>
- JSP 페이지에서 Java 코드를 실행할 수 있음
- JSP 페이지 어디든지 작성할 수 있음
- HTML과 Java 코드를 혼합해서 사용할 수 있음
- 출력 결과를 지정하면 출력할 수 있음
# 표현식 (Expression)
<%= %>
- JSP 페이지에서 Java 코드의 결과 값을 출력할 수 있음
- HTML 태그 내부에서만 작성할 수 있음
- 출력할 값이 null인 경우, 빈 문자열이 출력됨
- 표현식 안에 아무것도 작성하지 않으면 오류
# 선언 (Declaration)
<%! %>
- JSP 페이지에서 전역변수, 메서드, 클래스 등을 선언할 수 있음
- JSP 페이지 어디든지 작성할 수 있음
- JSP 페이지에서 직접 호출할 수 없음
→ 선언문으로 선언해두고 스크립트릿 or 표현식으로 호출하기
- 세미콜론(;)을 사용하지 않음
# 주석 (Comment)
<%-- --%>
- JSP 페이지에서 주석을 작성할 수 있음
- HTML 주석과 달리, 브라우저에서는 출력되지 않음
- JSP 문법이 사용된 곳에서는 반드시 HTML 주석 대신 JSP 스크립트 주석을 사용할 것
코드 분리 및 재활용
# 지시어 (directive)
<%@ include file="파일경로" %>
# 액션 (active)
<jsp:include page="파일경로">
- include : 복사해서 가져오기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <!-- 예시 --> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!-- 미리 만들어둔 header --> <jsp:include page="/layout/header.jsp"/> <!-- 셀프 클로징 태그 --> <style> /* 본문에 대한 스타일 */ </style> <main> <!-- 본문 --> </main> <!-- 미리 정의해둔 footer --> <jsp:include page="/layout/footer.jsp"/> | cs |
- include 지시어와 include 액션의 기본 기능은 유사함
# include 지시어와 include 액션의 차이점
▶ include 지시어
- 소스 코드만 분리되고, 부모 jsp 파일에서 함께 컴파일됨
→ 자식 jsp 파일을 변경했을 때, 부모 jsp 파일도 재 컴파일됨
- 따라서, include 지시어는 자식 jsp 파일이 잘 변하지 않는 정적인 데이터일 때 사용함
▶ include 액션
- 자식 jsp 파일이 자신만의 .class 파일을 만들어 컴파일됨
→ 자식 jsp 파일을 변경하더라도, 부모 jsp 파일은 컴파일되지 않음
- 따라서, include 액션은 자식 jsp 파일이 자주 변경될 수 있는 동적인 데이터일 때 사용함
- include 액션은 자식 jsp 파일에서 부모 jsp 파일이 보낸 파라미터를 사용할 수 있음
1 2 3 4 5 6 7 8 9 10 11 12 13 | <!-- 부모 jsp 파일 --> <jsp:include page="경로/파일명.jsp"> <jsp:param value="값" name="key명"/> </jsp:include> ------------------------------- <!-- 자식 jsp 파일 --> <%=request.getParameter("key명")%> <!-- 또는 --> ${key명} | cs |
'Java > JSP' 카테고리의 다른 글
[JSP] JSP 내장 객체 3 (exception) & 에러 페이지 (0) | 2023.03.27 |
---|---|
[JSP] web.xml 파일 & JSP 내장 객체 2 (config, application) (0) | 2023.03.27 |
[JSP] JSP 내장 객체 1 (request, response, session, out) (0) | 2023.03.22 |
[JSP] URL Mapping (0) | 2023.03.22 |
[JSP] JSP와 Servlet(서블릿) (0) | 2023.03.22 |