티스토리 뷰

JSP 이야기

JSP 페이지 이동에 관한 글



JSP에서의 페이지 이동에 대해서 알아보도록 하겠습니다.
 

첫번째 자바스크립트를 이용하는 방법이 있습니다.
 

test.jsp

<%
    if ( number == 1 )
    {
%>

<script language="javascript"> location.href = "test1.jsp" ; </script>
<%
    }
    else
    {
%>

<script language="javascript"> history.back() ;/script>
<%
    }
%>

 

먼저 서버에서 jsp 파일을 분석한 후 HTML코드로 이루어진 결과가 
클라이언트 측으로 전송이 되는데 클라이언트 측에서 자바스크립트 소스를 전송받으므로
기존 JSP 소스를 제외한 나머지 HTML소스와 자바스크립트는 클라이언트 측으로 전송이 됩니다.

 

 

 두번째 response.sendRedirect를 이용하는 방법있다.

test.jsp

<%-- HTML 코드를 사용하는 경우 --%>
HTML 코드입니다. 

<%
    if ( number == 1 )
    {
        response.sendRedirect ( "test1.jsp" ) ;
    }
    else
    {
        response.sendRedirect( "test2.jsp" ) ;
    }
%> 

<%-- JSP 코드를 사용하는 경우 --%>
<%
    out.println("JSP 코드입니다.") ;
%>

 

위와 같은 경우 'JSP 코드입니다.'는 출력이 되며 'HTML 코드입니다.'는 출력이 되지 않습니다.
test.jsp페이지가 서버에 전달되면 서버측에서 test.jsp를 분석해서
HTML 형태로 된 결과코드를 클라이언트 측에 전달하게 되는데
response.sendRedirect가 있는 경우 페이지 내의 HTML 코드는 실행되지 않습니다.

 

sendRequest는 클라이언트 브라우저의 URL을 바꿔서 페이지를 요청하는 방식이며
jsp:forward는 서버측의 URL만 변경하기 때문에 클라이언트 브라우저는 그 내용을 모릅니다.

댓글