: JSP의 4! (네가지) 내장객체를 의미한다
<ul>
<li>1. pageContext : 현재 페이지에서만 유지되는 객체</li>
<li>2. request : 현재 페이지에서만 유지되는 객체. 단, forward시 이동해도 유지</li>
<li>3. session : 웹 브라우저가 종료될떄까지 유지되는 객체</li>
<li>4. application : 웹 서버가 종료될때까지 유지되는 객체</li>
</ul>
<%@page import="복습Quiz/beans.Account"%>
<%
Account[] 는 이전의 Quiz에서 만든것을
벨로그 주인의 '힘' ! 으로 어떻게 땡겨와서
쓰는것임. 만들어진 내용은 뒤에 복습,Quiz를 참고
-------------------------------------------------------
Account hong = new Account("hong", "1234");
Account kim = new Account("kim", "jinho");
Account lee = new Account("lee", "lee12");
Account park = new Account("park", "234junho");
-------------------------------------------------------
※ Attribute
: 개발자가 필요에 따라서 값을 저장하고 꺼내쓰는 공간
데이터를 저장하기 위해서 변수를 쓰는데
변수는 이 페이지에서만 사용가능한 단점을
보완하기 위해 Attribute를 사용한다
값을 저장하기 위해서
겟과 셋을 사용한다
void setAttribute(String name, Object value)
- name은 저장하고 꺼내 쓸 이름
- value는 실제 저아할 데이터
- Object로 업캐스팅해서 받는다(= 모든 객체를 다 받을 수 있다)
업캐스팅의 단점 : 자식 클래스, 원래 클래스를 못 쓰는 것
// 그래서 다운 캐스팅을 해줘야 쓸 수 있음
pageContext.setAttribute("hong", hong);
request.setAttribute("kim", kim);
session.setAttribute("lee", lee);
application.setAttribute("park", park);
Object getAttribute(Stringname)
- 저장했을때 이름을 제시하면 value를 반환한다
- Object로 반환하기 때문에 원래 타입으로 다운캐스팅을 수행한다
- 없는 이름을 제시하면 null을 반환한다
+
원래는 Account pc = pageContext.getAttribute("hong"); 을 작성하지만
에러가 뜸 // 이유는 업 캐스팅 되어있어서
↓ 다운 캐스팅 ↓ (Account) 를 붙여서 함
Account pc = (Account) pageContext.getAttribute("hong");
Account rq = (Account) request.getAttribute("kim");
Account ss = (Account) session.getAttribute("lee");
Account ap = (Account) application.getAttribute("park");
%>
<ul>
<li>pageContext : <%=pc.getUserid() %>, <%=pc.getUserpw() %></li>
<li>request : <%=rq.getUserid() %>, <%=rq.getUserid() %></li>
<li>session : <%ss.getUserid() %>, <%=ss.getUserpw() %></li>
<li>application : <%=ap.getUserid() %>, <%=ap.getUserpw() %></li>
</ul>
<p>
<a href="pageSope_result.jsp">
<button>이동</button>
</a>
</p>
<form>
<input name="forward" type="hidden" value="yes">
<button>포워드</button>
</form>
<%
String forward = request.getParameter("forward");
// 포워드 버튼을 누르면 yes라는 값이 발생하고 포워드를 수행하게 한다
if ("yes".equals(forward)) {
RequestDispatcjer rd;
rd = request.getRequestDispatcher("pageSope_result.jsp");
rd.forward(request, response);
}
%>
<%
Object getAttribute(String name)
- 저장했을때 이름을 제시하면 value를 반환한다
- Object로 반환하기 때문에 원래타입으로 다운캐스팅을 수행한다
Account pc = (Account) pageContext.getAttribute("hong");
Account rq = (Account) request.getAttribute("kim");
Account ss = (Account) session.getAttribute("lee");
Account ap = (Account) application.getAttribute("park");
// ※ 객체가 없으면 nullpointer 예외 발생
if (pc == null) { pc = new Account(); }
if (rq == null) { rq = new Account(); }
if (ss == null) { ss = new Account(); }
if (ap == null) { ap = new Account(); }
%>
<h1>Attribute 결과</h1>
<hr>
<h4>어떤 객체들이 유지되는지 확인~<h4>
<ul>
<li>pageContext : <%=pc.getUserid() %>, <%=pc.getUserpw() %></li>
<li>request : <%=rq.getUserid() %>, <%=rq.getUserpw() %></li>
<li>session : <%=ss.getUserid() %>, <%=ss.getUserpw() %></li>
<li>application : <%=ap.getUserid() %>, <%=ap.getUserpw() %></li>
</ul>
<a href="pageSope.jsp">
<button>홈</button>
</a>
</ul>
Attribute

이동 눌렀을 때

포워드 눌렀을 때

어려운거 3대장
Attribute, cookie, session
다음엔 세션과 쿠키인데
세션을 많이쓴다고함 ( 서버에 저장 )
쿠키는 클라이언트에게 심어주는 내용같음
몇번봐도 이해가 안되는건 왜일까..
바보는 또 고민에 빠지고...
다른 강의를 유튭에서 들어봐야겠다
유튭 강의들을 list
1.forward
2.RequestDispatcher
3.cookie
4.Attribute
5.누나의HTML강의
위에 것들이 다 라이브러리에서 지원되는 함수라면
get으로 어떻게 사용하고
그걸 내가 설정한 userid와 userpw에 어떻게
적용시키고 변수를 재지급? 하는지를 정확하게 모르겠음
내...무습다...
code쓰는거 다른 벨로그에서 쓰는데 이뻐보이길래
배웠던 F12를 활용해서 슈슈슉 퍼가요~♡ 했음