1. 스클립트가 없는 JSP 페이지 작성이 가능하도록 하여 가독성이 좋은 JSP 페이지를 개발할 수 있는 EL 표현식을 활용
2. 새로운 액션을 도입할 수 있는 태그라이브러리 기능을 사용하여 사용자 정의 태그를 정의하고 사용
표현식 언어
- JavaBeans 컴포넌트에 저장된 애플리케이션 데이터를 쉽게 접근할 수 있도록 해준다.
- immediate evaluation
- ${}
- JSP 컨테이너에서 해당 페이지 컴파일시 평가
- deferred evaluation
- #{}
- JSF 제어기에서 해당 페이지의 생명주기동안 적절한 때에서 평가
- EL표현식 무시 방법 <%@ page isELIgnored="true"%>
예시)
${userBean.name}
${userBean["age"]}
${userBean.age +10}
묵시적 객체
- EL 표현식의 묵시적 객체
- 명시적으로 선언하지 않고 EL표현식 내에서 사용 가능한 객체
- 스크립틀릿, 스크립틀릿 표현식의 묵시적 객체와 다름
pageContext | javax.servlet.jsp.PageContext 객체 |
pageScope | page 범위의 속성에 대한 Map 객체 |
requestScope | request범위의 속성에 대한 Map 객체 |
sessionScope | session 범위의 속성에 대한 Map 객체 |
applicationScope | application 범위의 속성에 대한 Map 객체 |
param | ServletRequest.getParameter(String name) 호출로 얻을 수 있는 매개변수에 대한 Map 객체 |
paramValues | ServletRequest.getParameterValues(String name) 호출로 얻을 수 있는 매개변수에 대한 Map 객체 |
header | HttpServletRequest.getHeader(String name) 호출로 얻을 수 있는 헤더 대한 Map 객체 |
headerValues | HttpServletRequest.getHeader(String name) 호출로 얻을 수 있는 헤더에 대한 Map 객체 |
cookie | HttpServletRequest.getCookies(String name) 호출로 얻을 수 있는 쿠키에 대한 Map 객체 |
initParam | ServletContext.getInitParameters(Stirng name) 호출로 얻을 수 있는 컨텍스트 초기화 매개변수에 대한 Map 객체 |
예시)
웹 브라우저: ${header["user-agent"]}
사용자 컴퓨터: ${header.host}
HTTP 메소드: ${pageContext.request.method}
name 매개변수: ${empty param["name"]?"없음":param.name}
세션ID: ${cookie["JESSIONID"].value}
태그확장
- 기존의 태그 외 새로운 태그를 정의하여 사용 가능
- BodyTag 인터페이스 구현
- SimpleTag 인터페이스 구현
- 태그 파일 사용
태그 라이브러리
- JSP 페이지 내에서 사용할 기능들을 캡슐화하고 있는 액션들의 집합
- 사용방법
- 태그 핸들러 클래스 정의
- SimpleTag 또는 BodyTag 인터페이스 구현
- 사용자 정의 태그의 실제 기능 구현
- 태그 라이브러리 기술어(TLD) 설정
- 태그 라이버리를 기술하는 XML 문서
- 정의된 태그 핸들러 클래스에 대한 정보 가짐
- taglib 지시어 설정하여 사용
- 태그 핸들러 클래스 정의
taglib 지시어
지정한 태그 라이브러리를 가리키는 URI를 통하여 JSP 페이지 내에서 사용가능
<%@ taglib uri="/WEB-INF/tlds/mytags.tld" prefix="mytags"%>
<mytags:hello/>
- uri: 태그 핸들러 클래스를 사용하여 개발한 사용자 정의 태그를 지정할 때 사용
- tagdir
- 태그 파일이 있는 디렉터리 지정
- 일반적으로 /WEB-INF/tags/ 디렉토리 사용
- prefix
- <prefix>: <tagname> 형태로 태그를 사용
- 예약어: jsp:, jspx:, javax:, servlet:, sun:, sunw:
태그 라이브러리 기술어(TLD)
- 태그 라이브러리를 기술하는 XML 문서
- JSP 컨테이너가 태그 라이브러리를 가지는 taglib지시어가 있는 JSP 페이지를 번역하는데 사용
- 확장자: .tld
- 일반적으로 /WEB-INF/tlds 디렉터리 아래에 생성
태그 파일 사용시 프로젝트 사용 방법 순서
- 프로젝트 생성
- TLD 생성: /WEB-INF/tlds/mytags.tld
- Tag Handler 구현: /src/taghandler/HelloTagHandler.java
- mytags.tld와 연결
- JSP페이지에서 taglib 지시어를 지정하여 사용
tag 지시어
- page 지시어와 유사
- 태그 파일 내에 한 개 이상의 tag 지시어 사용 가능
'기타 > JSP' 카테고리의 다른 글
JSP + JDBC API (0) | 2020.06.09 |
---|---|
JSTL (0) | 2020.06.09 |
JSP 표준 액션 (0) | 2020.06.09 |
JSP 지시어 (0) | 2020.05.14 |
JSP 기본문법 (0) | 2020.05.14 |