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 영역객체를 전달할 수 있는 방법이며, 주소의 변환 없이 화면만 바뀐다.
세션값은 잘 나와도 브라우저를 껐다가 다시열면 사라진다.
'Back-end > JSP' 카테고리의 다른 글
JSP) 내장 객체(1) - request (0) | 2022.03.01 |
---|---|
JSP) Servlet이 무엇이며, 어떻게 동작할까? (0) | 2022.02.18 |
JSP) 내장 객체란? (0) | 2022.02.01 |
JSP) JSP기본 요소 - 액션 태그 (0) | 2022.02.01 |
JSP) JSP기본 요소(1): 주석, 지시어, 스크립트 요소, 액션 태그 (0) | 2022.01.30 |