[JSP/Servlet] 내장 객체 영역 확인 예제

firstPage.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>


<%

pageContext.setAttribute("name", "page");

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

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

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

System.out.println("firstPage.jsp : ");

System.out.println("하나의 페이지 속성 : "+pageContext.getAttribute("name"));

System.out.println("하나의 요청 속성 : "+request.getAttribute("name"));

System.out.println("하나의 세션 속성 : "+session.getAttribute("name"));

System.out.println("하나의 애플리케이션 속성 : "+application.getAttribute("name"));

request.getRequestDispatcher("secondPage.jsp").forward(request, response);

%>


secondPage.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

하나의 페이지 속성 : <%= pageContext.getAttribute("name") %><br>

하나의 요청 속성 : <%= request.getAttribute("name") %><br>

하나의 세션 속성 : <%= session.getAttribute("name") %><br>

하나의 애플리케이션 속성 : <%= application.getAttribute("name") %><br>


<a href="thirdPage.jsp">또 다른 페이지</a>

</body>

</html>


thirdPage.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

하나의 페이지 속성 : <%= pageContext.getAttribute("name") %><br>

하나의 요청 속성 : <%= request.getAttribute("name") %><br>

하나의 세션 속성 : <%= session.getAttribute("name") %><br>

하나의 애플리케이션 속성 : <%= application.getAttribute("name") %><br>

</body>

</html>



결과



firstPage.jsp를 실행하면 브라우저 내에 secondPage.jsp 페이지 내용이 출력이 되는데 firstPage.jsp의 마지막 문장에 secondPage.jsp로 포워딩하도록 하였기 때문이다.

콘솔창에선 4개의 내장 객체에 설정된 속성 값을 확인할 수 있다.


secondPage.jsp에는 이전 페이지인 firstPage.jsp에서 pageContext 내장 객체에 저장한 속성 값 이외에 값만 출력됨을 확인 할 수 있다. 


secondPage.jsp 의 <또 다른 페이지>를 클릭하여 리다이렉트 방식으로 thirdPage.jsp 페이지로 이동하면 세션과 애플리케이션에 저장된 속성 값만 계속 사용할 수 있음을 알수 있다.


여기서 thirdPage.jsp만 단독으로 실행한다면 세션이 끊긴 후이기 때문에 애플리케이션에 저장된 속성 값만 출력된다.


댓글

Designed by JB FACTORY