HTML 형식의 주석
: JSP는 HTML과 함께 구성되므로 HTML 형식의 주석 상용 가능
: 단, JSP 문법이 적용이 사용된 부분에는 사용 불가
<!-- 주석 -->
JSP 주석
: HTML과 JSP 문법 모든 부분에 사용 가능
: 소스 보기를 하면 보이지 않음. (웹에서 보이지 않고, 원본 코드에서만 보임)
<%-- 주석 --%>
page 지시어
현재 JSP 페이지를 컨테이너에서 처리하기 위한 각종 속성 지정
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*" %>
: 주요 속성
속성 | 설명 | 기본값 | |
language | 스크립트 언어를 지정한다 | java | |
import | jsp 파일 내에서 사용할 외부 자바 패키지나 클래스 지정 | ||
session | 세션 생성 여부 지정 | true | |
Buffer | 버퍼 크기 지정 | 8kb | |
autoFlush | 버퍼 내용 자동 비움 지정 | true | |
isThreadSafe | 단일 쓰레드 모델을 사용하여 동시성 제어 여부 지정 | true | |
Info | JSP 페이지 설명 | ||
errorPage | 에러 발생 시 호출 페이지 지정 | ||
isErrorPage | 에러만 처리하는 페이지 지정 | false | |
contentType | MIME 형식과 캐릭터셋 설정 | text/html; charset=ISO-8859-1 |
Include 지시어
: 현재 JSP 파일에 다른 JSP나 HTML 문서를 포함시킴
<%@ include file="포함할 파일명" %>
taglib 지시어
: 현재 JSP 페이지에 사용할 커스텀 태그 라이브러리를 지정함
: 표준화된 커스텀 태그 : JSTL (JSP Standard Tag Library)
: JSP 페이지 내에서 불필요한 자바 코드를 줄일 수 있음
<%@ taglib uri="/META-INF/mytag. tld" prefix="mytag" %>
액션이란?
: JSP 주요 구성 요소 중 하나로 다음 기능을 지원함
- JSP 페이지 간 흐름 제어
- 자바 빈즈 컴포넌트와 상호작용 지원
- 자바 애플릿지원
: 액션 태그 목록
액션 | 사용법 | 기능 | ||
include | <jsp:include page="xx.jsp"/> | 다른 페이지를 현재 페이지에 포함 | ||
forward | <jsp:forward page="xx.jsp"/> | 현재 페이지의 제어를 다른 페이지로 전달 | ||
Beans | <jsp:useBean scope="page" id="cls" class="xx.MyBean" /> | xx 패치지의 MyBean 클래스를 cls로 page 범위에서 사용할 것을 선언 | ||
<jsp:setProperty name="cls" property="xxx" /> | useBean으로 선언된 빈즈 클래스의 setXxx() 메서드를 호출 | |||
<jsp:getProperty name="cls" property="xxx" /> | useBean으로 선언된 빈즈 클래스의 getXxx() 메서드를 호출 |
include 액션
: include 지시어와 유사하게 다른 페이지를 import 함
: include 지시어와의 차이점
: 실행 시점에 해당 파일을 호출하고 결과를 포함시킴
: 파라미터를 전달할 수 있음
<jsp:include page="포워딩할 파일명"/>
forward 액션
: include 액션과 유사하지만 현재 페이지의 제어권을 완전히 다른 페이지로 전달
: 브라우저 URL에는 최종 전달된 파일명이 보이는 것이 아니라 최초 호출한 파일명이 보임 (다형성)
<jsp:forward page="포워딩할 파일명"/>
Bean 액션
: 빈즈 컴포넌트와의 상호작용 지원
<jsp:useBean id="변수명" class="패키지를 포함한 클래스명" /> <jsp:setProperty name="변수명( ↑ id)" property="매칭될 속성값" /> <jsp:getProperty name="변수명" property="매칭될 속성값" />
bean 액션 | 속성 | 설명 | |
useBean | id | 빈즈 클래스의 인스턴스명으로 사용할 변수 | |
class | 빈즈 클래스의 클래스명으로 패키지 경로를 포함 | ||
setProperty | name | 빈즈 클래스의 인스턴스 명으로 id 값에 설정했던 변수명 | |
property | 속성값으로 빈즈클래스의 setXxx( Xxx는 속성 이름 ) 메서드와 매칭될 속성값. "*"를 지정하면 모든 setXxx에 자동으로 매칭 | ||
getProperty | name | 빈즈 클래스의 인스턴스 명으로 id 값에 설정했던 변수명 | |
property | 속성값으로 빈즈클래스의 getXxx(Xxx는 속성이름)메서드와 매칭될 속성값 |
Expression : <%! %>
: JSP 파일에서 메서드나 멤버 변수를 쓸 때 사용
: JSP 내에 프로그램 코드를 많이 두는 것은 바람직하지 않음
<%! // 멤버 변수 선언이나 메서드 선언이 올 수 있다. String str = "test"; public boolean check(){ return false; } %>
Expression : <%= %>
: JSP 파일에서 간단한 출력을 위해 사용함
: out.println() 의 인자로 적합한 형태여야 함.
<%= 메서드 호출 및 변수 %>
Expression : <% %>
: JSP 파일 중간에 자바 코드를 기술함
: 태그 라이브러리 등을 권장하며 스크립트 남용 (페이지 가독성을 떨어뜨리고 유지보수를 어렵게 함)
: 스크립트릿에서 화면 출력을 위해서 out.println()을 사용
: 스크립트릿을 닫고 HTML 출력 후 다시 스크립트릿 작성도 가능
<% 자바코드 %>
JSP 내장 객체란?
: JSP에서 선언하지 않고 사용할 수 있는 객체
: 컨테이너에 의해 미리 선언된 자바 클래스의 참조 변수
: 스크립트릿이나 표현식에서 사용할 수 있음
: 주요 활동
- HTML 폼에서 입력한 값을 가지고 올 때
- 세션 관련 작업을 처리할 때
- 스크립트릿에서 브라우저 출력이 필요할 때
- 사용자 요청을 다른 페이지로 전달할 때
- 현재 JSP에 대한 각종 정보를 알고자 할 때