- 2019/09/10 4. scope2019년 11월 22일
- 조별하
- 작성자
- 2019.11.22.:47
스코프
session 은 로그인을 하기 위해서 필요하다
scope/scopeTest.jsp 파일
1. myweb 프로젝트에서 페이지들간에 값을 공유할 목적
웹페이지의 SCOPE(유효범위)
-scope의 종류 1) page : (아무것도 선택하지 않으면 기본값) 2) request : 서로 연결되어져 있는 모든 페이지에서 유효(부모페이지와 자식페이지에서만 유효) -부모가 자식을 부를 수 있음 ex) bbsDel.jsp(부모) 와 bbsDelProc.jsp(자식) -서로 부른 페이지에 한에서만 값을 공유하는것이 가능하다 3) session : 모든 페이지에서 유효(사용자 개별 접근, 시간) -한번 값을 올리면 '나'한에서만 모든페이지에서 사용할 수 있다. -어느정도 시간이 지나면 사라지기 때문에 로그인 정보와 같은 것을 session에 저장 그렇기때문에, 어느시간이 지나면 로그아웃 되는 이유도 그러하기 때문!! 4) application : 모든 페이지에서 유효(모든 사용자 접근,서버정보) -웹페이지의 내장변수 (별도의 자료형이 없다) 1) pageContext.setAttibute("변수명",값) 2) request.setAttribute("변수명",값 ); 3) session.setAttribute("변수명",값 ); 4) application.setAttribute("변수명",값 ); -각 SCOPE의 변수값 얻어오기 1) pageContext.getAttibute("변수명") 2) request.getAttribute("변수명" ); 3) session.getAttribute("변수명" ); 4) application.getAttribute("변수명" ); -각 SCOPE의 변수 삭제하기 1) pageContext.removeAttibute("변수명") 2) request.removeAttribute("변수명" ); 3) session.removegetAttribute("변수명" ); 4) application.removegetAttribute("변수명" );
▶ 위에 있는 scope 를 순서대로 기억해 둬라
//각 SCOPE에 내장 변수를 이용해서 값 올리기 pageContext.setAttribute("kor",100); request.setAttribute("eng",200); session.setAttribute("mat",300); application.setAttribute("uname","SOLDESK"); //SCOPE영역의 값 가져오기 Object obj=pageContext.getAttribute("kor"); int kor =(int)obj; int eng=(int)request.getAttribute("eng"); int mat=(int)session.getAttribute("mat"); String uname=(String)application.getAttribute("uname"); //출력 out.print("1)pageContext 영역: "+kor+"<hr>"); out.print("2)request 영역: "+eng+"<hr>"); out.print("3)session 영역: "+mat+"<hr>"); out.print("4)application 영역: "+uname+"<hr>"); //각 SCOPE 변수 삭제-> null값 반환 pageContext.removeAttribute("kor"); request.removeAttribute("eng" ); session.removeAttribute("mat" ); application.removeAttribute("uname" ); out.print("<p>*SCOPE영역 변수 삭제 후*</p>"); out.print("1)pageContext 영역: "+pageContext.getAttribute("kor")+"<hr>"); out.print("2)request 영역: "+request.getAttribute("eng")+"<hr>"); out.print("3)session 영역: "+session.getAttribute("mat")+"<hr>"); out.print("4)application 영역: "+application.getAttribute("uname")+"<hr>");
페이지 이동
-페이지 이동
1) <a href=""></a> 2) <form action=""><form> 3) location.href="" 4) <JSP:forward page=""></jsp:forward> 5) response.sendRedirect("");
<a href="scopeResult.jsp">[SCOPE결과 페이지로 이동]</a>
▶ scopeResult.jsp 파일을 만든후
1)
out.print("1)pageContext 영역 : "+pageContext.getAttribute("kor")+"<hr>"); out.print("2)request 영역 : "+request.getAttribute("eng")+"<hr>"); out.print("3)session 영역 : "+session.getAttribute("mat")+"<hr>"); out.print("4)application 영역 : "+application.getAttribute("uname")+"<hr>");
▶ 링크를 타고 결과 값을 확인해 보니 session 과 application만 접근이 가능했다.
2)
<form action="scopeResult.jsp"> <button>[SCOPE결과 페이지로 이동]</button> </form>
▶ 버튼에 action을 타고 결과 값을 확인해 보니 동일하게 session 과 application만 접근이 가능했다.
3)
<script> alert("SCOPE 결과 페이지로 이동"); location.href="scopeResult.jsp" </script>
▶ javascript location을 이동해 결과 값을 확인해 보니 동일하게 session 과 application만 접근이 가능했다.
4)
<jsp:forward page="scopeResult.jsp"></jsp:forward>
▶ JSP forword로 이동해 결과 값을 확인해 보니 동일하게 session 과 application 접근이 가능하고 또한 request영역까지
5)
response.sendRedirect("scopeResult.jsp");
▶ request.getAttribute("eng")는 null값
6)★★★★★★★★★★★★★
String view="scopeResult.jsp"; RequestDispatcher rd=request.getRequestDispatcher(view); rd.forward(request,response);
▶결과 값을 확인 session 과 application 접근이 가능하고 또한 request영역까지
'JAVA 교육 > myWeb' 카테고리의 다른 글
2019/09/11 6. 로그인 (0) 2019.11.22 2019/09/11 5. session&application (0) 2019.11.22 2019/09/10 3. 페이징 (0) 2019.11.22 2019/09/09 2. 검색 창 (0) 2019.11.22 2019/09/09 1. 댓글 개수&검색 글 개수 (0) 2019.11.22 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)