개발노트/JSP_Servlet

[JSP] 값 전달

Dahoon06 2021. 4. 21. 14:16
728x90
반응형

pageContext 

pageContext.setAttribute("name", "pageContext data"); // 키와 값

pageContext가 가지고 있는 setAttribute로 값을 설정

 

현재의 페이지값만 가질 수 있다. (외부로 전달 불가능)

 

 

 

request

request.setAttribute("name", "request data");

request가 가지고 있는 setAttribute로 값을 설정

 

RequestDispatcher rd = request.getRequestDispatcher("07_secondPage.jsp");

rd.forward(request, response);

 

** request는 RequestDispatcher를 통하여 다른 JSP 파일에게 값을 전달할 수 있다.

 

 

session

session.setAttribute("name", "session data");

session이 가지고 있는 setAttribute로 값을 설정

 

 어플리케이션 내의 내부 임시 저장소인 session 영역(어플리케이션이 구동중일때만 사용되는) : 다른 파일이 언제든지 접근해서 사용 가능.

 

 

appaliction

application.setAttribute("name", "application data");

appaliction이 가지고 있는 setAttribute로 값을 설정

 

어플리케이션 내의 임시 저장소 : session과 비슷한데 저장소의 영역이 더 크다.

 

 

** 각각의 저장소가 다르기 때문에 같은 이름 name이라는 키값을 사용할 수 있는것!!

 

 

 

값을 설정한 firstPage.jsp

 

 

 

현재 페이지에서 값을 설정했기 때문에 pageContext값이 정상적으로 나왔다.

 

값들을 외부 페이지인 second.jsp에서 가져와보자

 

 

 

 

secondPage.jsp

 

 

 

값을 꺼내기 위해 각 클래스가 가지고 있는 getAttribute를 통해 값을 꺼내온다. 

 

설정을 name이라는 키명으로 설정 했으므로 꺼내올 값은 name에 담긴 값

 

 

 

웹브라우저에서 실행

 

 

 

 

secondPage에서 pageContext의 값을 설정해준것이 아니기 때문에 외부 페이지에서는 Null값으로 출력되었다

 

request는 forward를 통하여 값을 전달 했으니까 정상 출력 

 

나머지 session과 application은 외부 파일에서 접근 가능 하므로 정상 출력

 

 

 

각 저장소의 크기 및 이동

 

 

 

 

HTML문서에서 값을 전달하기 위해서는 파라미터 값이 필요. 파라미터 값으로 JSP파일로 값을 보내줬다.

 

JSP파일 내에서도 각 저장소마다 사용할 수 있는 범위가 다르다.

 

pageContex 는 현재의 페이지에서만 값을 가질 수 있고 request는 포워딩을 통하여 값을 전달해 줄 수 있으며

나머지는 외부에서 쉽게 접근 가능하여 사용할 수 있다.

 

 


 

728x90
반응형

'개발노트 > JSP_Servlet' 카테고리의 다른 글

[JSP] Action Tag  (0) 2021.04.22
[JSP] JSP(JavaServerPages)  (0) 2021.04.21
[JSP] application의 주요 메소드  (0) 2021.04.21
[JSP] 화면 이동 Dispatcher방식과 Redirect 방식  (0) 2021.04.20
[JSP] request 메소드  (0) 2021.04.20