새소식

JAVA 교육/myWeb

2019/09/10 4. scope

  • -

스코프

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>");    

image

페이지 이동

-페이지 이동
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만 접근이 가능했다.

image

2)

<form action="scopeResult.jsp">
<button>[SCOPE결과 페이지로 이동]</button>
</form>

image


▶ 버튼에 action을 타고 결과 값을 확인해 보니 동일하게 session 과 application만 접근이 가능했다.

3)

<script>
alert("SCOPE 결과 페이지로 이동");
location.href="scopeResult.jsp"
</script>

image


▶ javascript location을 이동해 결과 값을 확인해 보니 동일하게 session 과 application만 접근이 가능했다.

4)

<jsp:forward page="scopeResult.jsp"></jsp:forward>

image


▶ JSP forword로 이동해 결과 값을 확인해 보니 동일하게 session 과 application 접근이 가능하고 또한 request영역까지

5)

response.sendRedirect("scopeResult.jsp");

image


▶ request.getAttribute("eng")는 null값

6)★★★★★★★★★★★★★

String view="scopeResult.jsp";
    RequestDispatcher rd=request.getRequestDispatcher(view);
    rd.forward(request,response);

image

▶결과 값을 확인 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
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.