attribute(속성) : 컨트롤 하기 위한 영역
- page : 사용 x
-> 페이지 내에서 지역변수처럼 사용
- request
-> http요청을 was가 받아서 웹 브라우저에게 응답할 때까지 변수가 유지되는 경우 사용
-> request를 response 하면 사라짐
- session
-> 웹 브라우저 별로 변수가 관리되는 경우 사용
-> 브라우저가 꺼지면 사라짐
- application : 너무 광범위함
-> 웹 어플리케이션이 시작되고 종료될 때까지 변수가 유지되는 경우 사용 ( 모든 클라이언트에게 공통적으로 무언가를 보여 줄 때 사용)
사용 메서드
- setAttribute(String name, Object Value)
- getAttribute(String name)
- removeAttribute(String name) ;
- getAttributeNames()
💡 예시
1. request.setAttribute();
String userid = "apple";
String userpw = "abcd1234";
String username = "김사과";
request.setAttribute("userid", userid);
request.setAttribute("userpw", userpw);
request.setAttribute("username", username);
pageContext.forward("attribute2.jsp");
2. session.setAttribute();
String userid = "apple";
String userpw = "abcd1234";
String username = "김사과";
session.setAttribute("userid",userid);
session.setAttribute("userpw",userpw);
session.setAttribute("username",username);
pageContext.forward("attribute2.jsp");
3. (String)request.getAttribute();
<%
String userid = (String)request.getAttribute("userid");
String userpw = (String)request.getAttribute("userpw");
String username = (String)request.getAttribute("username");
%>
아이디 : <%=userid %><br>
비밀번호 : <%=userpw %><br>
이름 : <%=username %><br>
4. (String)session.getAttribute();
<%
String userid = (String)session.getAttribute("userid");
String userpw = (String)session.getAttribute("userpw");
String username = (String)session.getAttribute("username");
%>
아이디 : <%=userid %><br>
비밀번호 : <%=userpw %><br>
이름 : <%=username %><br>
request.set/getAttribute();
- 해당 요청에서만 속성이 유지
- 다음 요청에서는 이전 요청에서 설정한 데이터를 사용불가
session.set/getAttribute();
- 세션 객체에 속성이 유지
- 다음 요청에서도 이전 요청에서 설정한 데이터를 사용가능
pageContext.forward("attribute2.jsp")
- "attribute2.jsp" 페이지가 현재 요청과 동일한 요청 내에서 처리
- "attribute2.jsp" 페이지에서는 이전 요청에서 설정된 요청 속성을 사용가능
- 이전 페이지와 "attribute2.jsp" 페이지 모두 브라우저에 표시
response.sendRedirect("attribute2.jsp")
- "attribute2.jsp" 페이지로 새로운 요청을 보내고, 이전 페이지에서 설정된 요청 속성은 새로운 요청과는 관련이 없어짐
- "attribute2.jsp" 페이지만 브라우저에 표시
💡 결과
- 1request + 3request
- forward("attribute2.jsp")
- attribute.jsp : 정상
- attribute2.jsp : null
- redirect("attribute2.jsp")
- attribute.jsp = attribute2.jsp
- 1request + 4session
- forward("attribute2.jsp")
- attribute.jsp : null
- attribute2.jsp : null
- redirect("attribute2.jsp")
- attribute.jsp = attribute2.jsp
- 2session + 3request
- forward("attribute2.jsp")
- attribute.jsp : null
- attribute2.jsp : null
- redirect("attribute2.jsp")
- attribute.jsp = attribute2.jsp
- 2session + 4session
- forward("attribute2.jsp")
- attribute.jsp : 정상
- attribute2.jsp : 정상
- redirect("attribute2.jsp")
- attribute.jsp = attribute2.jsp