JSP와 6가지 요소
JSP란 Java Server Page의 줄인 말로 HTML코드에 JAVA코드를 넣어 동적 웹페이지를 생성하는 웹 어플리케이션도구로써 실행 되면 Servlet으로 변환되어 웹 어플리케이션 서버에서 동작하게 된다.
Servlet이란 웹페이지를 동적으로 생성하기위한 서버측 프로그램으로 WAS에서 컴파일되고 동작한다.
JSP의 구성요소에는 6가지가 존재한다.
-
Script 요소
-
지시어 (Directive)
-
내장객체
-
액션태그
-
표현언어
-
사용자 정의태그, JSTL
Script 요소
- 스크립트릿 <%~~~%> => JSP페이지 내부에 자바 소스코드를 삽입한다.
- 표현식 <%=~~~%> => HTML 요소 내에 값을 넣기 위해 사용한다.
- 선언 <%!~~~%> => JSP페이지 내부에 자바 메서드를 선언한다.
지시어 (Directive)
지시어는 JSP에대한 설정 정보 또는 JSP에 다른 문서를 포함할때 사용한다.
- <%@page~~~%> => 스크립트 언어, 에러페이지 지정, 버퍼 설정등을 정의한다
- <%@include~~~%> => 번역단계에서 다른 문서를 포함 시킨다
- <%@taglib~~~%> => 태그 라이브러리를 선언한다
내장 객체
JSP 컨테이너에의해 개발자들이 명시적으로 선언하지 않고 바로 사용할 수 있는 자바 객체(사전에 정의된 객체)
- request => 클라이언트의 요청을 담은 객체
- response => 서버의 응답을 담은 객체
- out => 출력을 클라이언트로 보내는 객체
- session => 서버측 웹 컨테이너에 사용자의 상태를 관리하는 객체
- application => 어플리케이션 전반에 걸친 정보를 관리하는 객체
- config => 페이지 관련하여 서블릿을 설정하는 객체
- PageContext => 현재 페이지 내용을 저장하고 있는 객체
- Page => 페이지에대한 실제 인스턴스를 저장하고 있는 객체
- Exception => 이전 페이지 에러를 저장하고 있는 객체
액션태그
액션태그는 JSP페이지 내에서 어떤동작을 하도록 지시하는 태그이다
- <jsp:include> => 페이지가 요청될때 해당 태그가 위치한곳에 파일을 포함
- <jsp:useBean> => javaBean을 찾고 인스턴스 (id: 인스턴스 이름, class: 빈즈의 패키지 경로, Scope:빈즈가 사용될 범위(page, request,session, application))
- <jsp:setProperty> => javaBean의 프로퍼티 설정(HTML form처리와 Data base연동시에 이용, 프로그램 중복을 줄이고 유지보수는 원활하게 할 수 있다)
- <jsp:getProperty> => javaBean의 프로퍼티를 가져온다
- <jsp:forward> => 하나의 JSP페이지에서 다른 JAP페이지로 강제이동
- <jsp:plug-in> => javaBean또는 Applet을 현재 JSP페이지에 포함 시킬때
- <jsp:element> => XML태그를 동적으로 정의
- <jsp:attribute> => 동적으로 정의된 XML태그의 속성을 정의
- <jsp:body> => 동적으로 정의된 XML태그의 본문을 정의
- <jsp:text> =>JSP페이지와 문서에 템플릿 텍스트를 쓰는데 사용
- <jsp:param> => Include된 페이지와 문서에 템플릿 텍스트를 쓰는데 사용(include된 페이지에 request.getParameter가 있어야한다)
표현 언어(EL => Expression Language)
- 스크립트 요소의 사용없이 JSP페이지에 값을 표현하는 태그기반의 새로운 언어, 기본 문법은 ${expr}이며 표현언어의 표현식에는 정수, 부동소수, 문자열, boolean, 내장 null을 사용할 수 있다.
- Script요소를 제외한 나머지 영역에서 모두 사용이 가능하다.
- 액션태그나 JSTL의 속성값으로 사용이 가능하다
- ${}와 #{}의 차이점은 ${}는 해석되는 즉시 적용되며 #{}는 해당값이 사용될때 변수의 내용이 적용되어 지연적용이라 한다
(${} = 깊은복사, #{} = 얕은복사 느낌)
JSTL(JSP Standard Tag Library)
자바언어의 조건문 반복문을 HTML내에서 태그요소를 사용하여 구현할 수 있게 해준다.
1. <c:out> - <%=~~~%>와 같은 역할을 하며 표현식에 사용된다
2. <c:set> - JSP에 사용될 변수를 지정하며 범위를 설정할 수 있다
3. <c:remove> - 변수를 제거한다
4. <c:catch> - 에러를 캐치하고 이를 처리한다
5. <c:if> - 조건문이 참일 경우 본문에 포함한다
6. <c:choose> -조건 태그이며 배타적 조건부 연산에 사용한다
7. <c:when> - choose태그가 true일 경우에 본문에 포함한다
8. <c:otherwise> - choose태그가 false일 경우 본문에 포한 한다
9. <c:import> - 설정된 URL 자원을 삽입한다
10. <c:forEach> - 컬렉션이나 Map과같은 유형을 허용하고 요소를 순서대로 처리한다
11. <c:forToken> - 설정한 구분자로 분리된 토큰을 순서대로 처리한다
12. <c:param> - import태그에 설정된 url파라메터를 추가한다
13. <c:redirect> - 새로운 url로 리다이렉트 시킨다
14. <c:url> - url을 재생성한다.