Back-end/JSP

JSP) 영역 객체와 속성(Attribute)

luana_eun 2022. 2. 1. 20:36
728x90

JSP가 제공하는 9가지의 내장객체 중 4가지(pageContext, session, request, application)은 각각 특정 범위(scope)와 그 범위 안에서 공유할 수 있는 객체(데이터)(Attribute)를 가진다. 

 

속성(Attribute): 공유되는 데이터

영역(Scope): 속성을 공유할 수 있는 유효범위

영역객체: 해당 영역에서 속성을 사용할 수 있는 내장 객체.

              ex) page영역에 데이터를 저장하려면 pageContext라는 영역객체를 사용해야하고,

                   session 영역에 데이터를 저장하려면 session 영역객체를 사용해야한다. 

 

영역과 영역객체

 

영역객체 사용방법

영역객체에 속성 저장: setAttribute(속성명, 값)

영역객체의 속성 출력: getAttribute(속성명)

영역객체의 속성 삭제: removeAttribute(속성명)

<%
		//영역객체 저장
		pageContext.setAttribute("p", "잠와");
		request.setAttribute("r", "집가고싶다");
		session.setAttribute("s", "session##");
		application.setAttribute("a", "appli");
		
		String id = request.getParameter("id");
%>

 

 

 

페이지 이동방식과 값 전달 영역

페이지 이동 방식 4가지와 영역객체에 따라 값이 전달되는지 아닌지 보자. 

① a태그

<a href="scopeResult.jsp?id=<%=id%>&w=1234">scopeResult로 이동</a>

결론: 파라미터, session, application

 

② 자바스크립트

<script>
    location.href="scopeResult.jsp?id=<%=id%>&pw=1234";
</script>

결론: 파라미터, session, application

 

③ JSP 코드

<%
    response.sendRedirect("scopeResult.jsp?id="+ id +"&pw=1234");
%>

결론: 파라미터, session, application

 

④ 액션태그 포워드

 <jsp:forward page="scopeResult.jsp"></jsp:forward>

결론: request, 파라미터, session, application

 

액션태그 방법은 유일하게 request 영역객체를 전달할 수 있는 방법이며, 주소의 변환 없이 화면만 바뀐다. 

세션값은 잘 나와도 브라우저를 껐다가 다시열면 사라진다. 

728x90