[application]
웹 어플리케이션당 1개의 application 객체가 생성 됨.
application 영역에 저장된 속성은 모든 jsp페이지(서블릿)에서 공유한다.
링크로 페이지를 이동하나 리다이렉트/포워드로 이동하나 모든 jsp페이지는 하나의 application 영역안에 있기 때문!
서버 종료 시 저장된 속성이 소멸됨
총 페이지 2개 필요!
1.application객체를 저장 할 영역
2저장 한 결과물 출력할 영역
1.application 객체를 저장해 보자
ApplicationScopeIndex.jsp
<%
//저장할 객체 생성
MemberDTO first = new MemberDTO("KIM","1234","김길동","20");
MemberDTO second = new MemberDTO("LEE","5678","이길동","10");
MemberDTO third = new MemberDTO("PARK","9999","박길동","30");
//리스트계열 컬렉션에 객체 저장
List<MemberDTO> list = Arrays.asList(first,second,third);
//맵계열 객체 저장
Map<String,MemberDTO> map = new HashMap<>();
map.put("first",first);
map.put("second",second);
map.put("thurd",third);
//application 영역에 컬렉션들 저장 (속성이름,속성값) 이렇게 저장하는 군 !!!
application.setAttribute("list",list);
application.setAttribute("map",map);
%>
/*application 객체는 어떻게 이동을 하든 속성들이 사라지지 않는걸 보여주기 위해서
클릭으로 포워드방식으로 리다이렉트로 이동해 볼 것임 !
자동이동 일 때 절대경로로 지정 시 포워드방식은 컨텍스트 루트 제외
리다이렉트 방식은 컨텍스트 루트 반드시 포함해야 한다
단,server.xml에서 Context태그의 path속성을 빈문자열로 지정 시에는 신경 안써도 된다. */
//1. 사용자 클릭으로 페이지 이동
<a href="ApplicationScopeResult.jsp">클릭하세요</a>
//2.포워드방식 자동이동
<% request.getRequestDispatcher("/builtinObjectScope04/ApplicationScopeResult.jsp"); %>
//3.리다이렉트방식으로 자동이동
<% response.sendRedirect(request.getContextPath()+"/builtinObjectScope04/ApplicationScopeResult.jsp"); %>
2. 저장한 객체들 뿌려보쟈
ApplicationScopeResult.jsp
둘다 항 변환 해야하넴...
//1.리스트 계열 컬렉션
<%
List<MemberDTO> list=(List<MemberDTO>)application.getAttribute("list");
for(MemberDTO member : list){
%>
<li><%=member %></li>
<% }
%>
//2.맵 계열 컬렉션
<%
Map<String,MemberDTO> map =(Map<String,MemberDTO>)application.getAttribute("map");
Set<String> keys=map.keySet();
for(String key:keys){
%>
<li><%=map.get(key) %></li> // 키값으로 값 꺼내기!!
<% }
%>
'학원 > JSP' 카테고리의 다른 글
11/23 49-2 [JSP] Cookie연습(장바구니담기) (1) | 2022.11.23 |
---|---|
11/23 49-1 [JSP] Cookie (0) | 2022.11.23 |
11/22 48-10 [JSP] forward와 리다이렉트의 차이(수정전) (0) | 2022.11.23 |
11/22 48-10 [JSP] request영역 (0) | 2022.11.23 |
11/22 48-9 [JSP] Page영역 (1) | 2022.11.23 |