속성(Attribute)
- 속성이란 JSP페이지 사이에서 주고 받거나 공유되는 데이터(객체)를 뜻함
속성을 갖고 있는 기본객체
객체 | 범위 | 비고 |
---|
HttpServletRequest | 하나의 HTTP 요청 | JSP 내장객체 |
HttpSession | 하나의 웹 브라우저 | JSP 내장객체 |
ServletContext | 하나의 웹 애플리케이션 | JSP 내장객체 |
pageContext | 하나의 JSP 페이지 | JSP 내장객체가 아닌 pageContext 내장 객체로 접근 |
속성처리 메서드
메서드 | 리턴타입 | 설명 |
---|
setAttribute(String name, Object value) | void | name의 속성값을 value로 지정 |
getAttribute(String name) | Object | name의 속성값 조회. 속성값 없을 시 null 반환 |
removeAttribute(String name) | void | name의 속성값 삭제 |
getAttributeNames() | | 속성의 이름 조회(PageContext제외) |
범위(Scope)
- 속성을 공유 할 수 있는 유효범위
종류
Page Scope
- PageContext에 저장되는 속성이 가지는 유효범위
- 같은 JSP페이지 내에서만 속성 사용 가능
Request Scope
- HttpServletRequest에 저장되는 속성이 가지는 유효범위
- Set이 들어간 JSP페이지에서 사용 가능. 응답 완료 시 소멸
- forward, include 방식을 이용하면 다른 JSP페이지에서도 공유 가능
- Model2 개발방식에서 Model이 획득한 데이터를 View에 전달할 때 주로 사용
Session Scope
- HttpSession에 저장되는 속성이 가지는 유효범위
- 세션객체가 유지되는 동안 서로 다른 JSP 페이지에서 공유 가능
- 로그인 기능
- 로그아웃, 브라우저 닫는 경우 소멸
- 사용자 당 하나만 생성되므로 세션의 속성값은 해당 사용자만 사용 가능
Application Scope
- ServletContext에 저장되는 속성이 가지는 유효범위
- 웹서버가 실행되는 동안 저장된 속성을 모든 JSP, 모든 서블릿, 모든 사용자가 공유 가능
Redirect와 Forward
Redirect
- 재요청 URL을 응답으로 제공하며, 완료 시 요청객체와 응답객체는 소멸됨
- 다른 JSP(view)에 데이터 전달 불가
주요 메서드
- void response.sendRedirect(String url)
- 지정된 url을 재요청하는 응답을 클라이언트에게 보냄
Forward
- RequestDispatcher객체의 메서드를 활용하면 포워드 방식으로 내부이동 가능
- 속성에 담긴 정보를 저장하고 있다가 다른 페이지에서도 이용 가능하게 해줌
- request의 response 객체가 그대로 유지된 채 서버상에서 이동
주요 메서드
- request.getRequestDispatcher(String path)
- void forward(ServletRequest request, ServletResponse response)
- 내부이동 대상 JSP/서블릿에 요청객체와 응답객체를 전달
- void include(ServletRequest request, ServletResponse response)
EL
${EL표현식}
- Expression Language의 약자로, 값을 표현할 때 사용하는 스크립트 언어
<p>${표현식}</p>
<img src="resources/images/${표현식}" />
<input type="text" name="username" value="${표현식}" />
<a href="list.hta?pageNo=${표현식}&cateNo=${표현식}">링크</a>
<div id="box-${표현식}"> ... </div>
- 각종 연산, 속성값, 메서드 호출 등 다양한 정보 표현 가능
EL의 내장객체
연산자