[JSP] 기초 문법

아임펭·2024년 7월 3일

Java_BackEnd

목록 보기
2/2

1. JSP 기초 문법

1) 스크립트 태그(Script tag)

(1) 선언문(Declaration)

<%! ... %>
JSP 페이지 내에서 사용될 Java 변수나 메서드를 선언할 수 있는 영역입니다. 전역 변수(멤버 변수)를 선언할 때 사용합니다.

(2) 스크립틀릿(Scriptlet)

<% ... %>
가장 일반적으로 많이 사용되는 스크립트 요소,
지역변수로 선언되며, 메서드는 선언할 수 없습니다.

JSP에서는 스크립트릿 문법을 주로 사용하며,
문장 블록을 닫지 않고 끝낼 수 있어 제어문 처리에서 유연하게 사용할 수 있습니다.

① 선언문에서 선언되는 모든 변수들은 JSP 페이지 전체에서 접근할 수 있는 변수들이고, JSP 페이지 내에서 메서드가 필요하다면 반드시 선언문에서 선언해야합니다.

② 스크립틀릿에서 선언된 변수는 지역변수이기 때문에 반드시 초기화 해주어야 합니다.

<body>
  // 스크립트 선언, 지역변수
  <%
      String world = team + " world!";
  %>

  // 선언문, 멤버변수
  // 스크립틀릿보다 늦게 선언되어도 사용 가능
  <%!
      String hello = "Hello,";
  %>
</body>

(3) 표현식(Expression)

<%= ... %>
변수, 계산식, 메서드 호출 결과를 문자열 형태로 출력할 때 사용합니다.

조건적인 if/else는 표현식으로 사용할 수 없고, 삼항 연산자는 조건 검사의 결과 값을 리턴하기 때문에 사용이 가능합니다.

(4) 주석(Comment)

▪ HTML 형식의 주석 : <!-- 주석입력 -->
▪ JSP 형식의 주석 : <%-- 주석입력 --%>
▪ 스크립트 요소의 주석 : <% /* 여러줄 주석 */ %>
<% // 한줄 주석 %>

2) 디렉티브 태그(Directive tag)

(1) page

JSP 페이지에 대한 정보를 설정합니다.

컨테이너에서 처리하는데 필요한 속성을 기술하며, 대부분 소스코드 맨 앞에 위치합니다.

page 지시자의 종류

속성설명
infoJSP 페이지 설명 작성텍스트
language스크립트 언어 유형 지정스크립팅 언어
contentTypeMIME 형식 지정, charset 설정MIME 타입
extends상속받는 부모 클래스클래스명
import외부 자바 패키지, 클래스 불러옴클래스/패키지명
sessionHttpSession 사용 여부 지정클래스/패키지명
buffer출력 버퍼 크기 지정buffer 값
autoFlush버퍼가 가득 찼을 경우 자동으로 버퍼를 지울지 여부 지정boolean
isThreadSafe다중 스레드를 사용할 수 있는지 여부 지정boolean
trimDirectiveWhitespaces줄바꿈, 공백제거boolean
errorPage오류가 발생할 경우 호출될 페이지 지정로컬 URL
isErrorPage예외를 처리하는 페이지인지 지정boolean
pageEncoding해당 JSP 파일 인코딩 값인코딩값
// page 예시
  
// contentType 속성 
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
  
// import 속성
<%@ page import="java.util.Date"%>
  
// isELlgnored 속성
<%@ page isELlgnored="true"%>

(2) include

JSP 페이지 특정 영역에 다른 문서를 포함할 때 사용합니다. 포함할 수 있는 외부 파일은 HTML, JSP, 텍스트 파일 등이 가능합니다.

top(메뉴)와 bottom(푸터) 같은 공통된 부분을 별도의 JSP 파일로 만들어 코드 재사용이 가능합니다.

<%@ include file="파일명" %>

// include 예시
<%@ include file="directiveTop.jsp" %>

(3) taglib

JSP 페이지에서 사용할 태그 라이브러리를 설정합니다.

<%@ taglib uri="경로" prefix="태그 식별자"%>
▪ uri 속성은 사용자가 정의한 태그의 설정 정보를 가진 경로 주소입니다.

3) 액션 태그(Action tag)

스크립트 요소, 주석, 지시자와 함께 JSP 문법에 속하는 태그로, 어떤 동작 또는 액션이 일어나는 시점에 페이지와 페이지 사이에 제어를 이동시킬 수 있고, 브라우저에서 자바 애플릿을 실행시킬 수도 있습니다.

(1) include 액션 태그

다른 페이지를 현재 페이지에 포함시킬 수 있는 기능을 가지고 있습니다.

include 지시자/액션 태그 차이

  • include 지시자 : 단순하게 소스의 내용이 텍스트로 포함(정적)
  • include 액션 태그 : 포함시킬 페이지의 처리 결과를 포함(변수 값, 동적 작업 가능)
<jsp:include page="로컬 URL" flush="true"/>

flush 속성은 포함될 페이지로 이동할 때 현재 페이지가 지금까지 출력 버퍼에 저장한 결과를 어떻게 처리할 것인가를 결정합니다.

(2) forward 액션 태그

다른 페이지로 이동할 때 사용되는 태그,
jsp 페이지 내에 forward 액션 태그를 만나면 forward 태그가 있던 jsp 페이지의 모든 내용을 버리고 forward 태그가 지정하는 다른 페이지로 이동합니다.

사용자가 입력한 값의 조건에 의해 여러 페이지로 이동해야 할 경우 등 사용 가능합니다.

// 사용 방식
<jsp:forward page="로컬URL"/>
<jsp:forward page="로컬URL"></jsp:forward>
<jsp:forward page='<%=expression%>'/>

(3) 스크립트 요소를 대체하는 액션 태그

<jsp:declaration>코드</jsp:declaration>
<jsp:scriptler>코드</jsp:scriptlet>
<jsp:expression>코드</jsp:expression>
<jsp:directive.page contentType="text/html; charset=EUC-KR"/>
<jsp:directive.include file="xxx.jsp"/>

(4) 기타 액션 코드

plug-in
<jsp:plugin> 액션은 자바 플러그인(Java Plug-in)을 사용하여 자바 애플릿을 jsp 페이지에서 실행할 때 사용하는 액션 태그입니다.

useBean
자바빈즈(JavaBeans)와 통신을 위해서 구현한 액션 태그

<jsp:useBean id=".." scope=".."/>
<jsp:setProperty name=".." property=".." value=".."/>
<jsp:getProperty name=".." property=".."/>
profile
I'm peng

0개의 댓글