Day58 :) 속성, 스코프, EL

Nux·2021년 12월 14일
0

자바웹개발

목록 보기
70/105
post-thumbnail

속성(Attribute)

  • 속성이란 JSP페이지 사이에서 주고 받거나 공유되는 데이터(객체)를 뜻함

속성을 갖고 있는 기본객체

객체범위비고
HttpServletRequest하나의 HTTP 요청JSP 내장객체
HttpSession하나의 웹 브라우저JSP 내장객체
ServletContext하나의 웹 애플리케이션JSP 내장객체
pageContext하나의 JSP 페이지JSP 내장객체가 아닌 pageContext 내장 객체로 접근

속성처리 메서드

메서드리턴타입설명
setAttribute(String name, Object value)voidname의 속성값을 value로 지정
getAttribute(String name)Objectname의 속성값 조회. 속성값 없을 시 null 반환
removeAttribute(String name)voidname의 속성값 삭제
getAttributeNames()속성의 이름 조회(PageContext제외)

범위(Scope)

  • 속성을 공유 할 수 있는 유효범위

종류

Page Scope

  • PageContext에 저장되는 속성이 가지는 유효범위
  • 같은 JSP페이지 내에서만 속성 사용 가능

Request Scope

  • HttpServletRequest에 저장되는 속성이 가지는 유효범위
  • Set이 들어간 JSP페이지에서 사용 가능. 응답 완료 시 소멸
    • forward, include 방식을 이용하면 다른 JSP페이지에서도 공유 가능
  • Model2 개발방식에서 Model이 획득한 데이터를 View에 전달할 때 주로 사용
    • 게시판 CRUD기능

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)
    • path로 사용자의 요청을 보냄
  • void forward(ServletRequest request, ServletResponse response)
    • 내부이동 대상 JSP/서블릿에 요청객체와 응답객체를 전달
  • void include(ServletRequest request, ServletResponse response)
    • 응답에 지정된 경로의 JSP를 포함

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의 내장객체

연산자

0개의 댓글