본문 바로가기
Java Web/JSP

[JSP] JSP 스크립트

by 스응 2023. 3. 23.
728x90
728x90

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 스크립트 주석을 사용할 것

 

 

반응형
728x90

코드 분리 및 재활용

#  지시어 (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
320x100
반응형

댓글