dispatcher 와 redirect 리절트 타입 : 전달된 데이터가 계속 전달되지 않고 페이지가 이동하는것이 특징


redirect 리절트 타입은 JSP에서 response.sendRedirect("...") 메소드를 호출한 것과 같은 효과를 낸다.

redirect 리절트 타입은 리다이렉트할 URL을 응답으로 웹 브라우저에 보낸다.

URL로 새롭게 서버와 연결이 되므로 request가 새롭게 생성되는 것을 의미한다. 웹브라우저에 나타나는 URL로 바뀐다.


dispatcher는 request가 유지된다. 서버와 새롭게 연결이 되는 것이 아니므로 처음 접속 했던 request 정보를 가지고 있다. 

dispatcher는 요청 처리를 다른 웹 리소스로 위임 하는 것이다 따라서 웹 브라우저에 요청 URL이 바뀌지 않는다. 


         <!-- dispatcher와 redirect 리절트 타입 -->
        <action name="LoginAction1" class="action.LoginAction">
            <interceptor-ref name="params"/>
            <result name="success" type="dispatcher">loginSuccess.jsp</result>
        </action>



=> URL이 바뀌지않고 이전페이지의 정보가 유지되어  userid와 message값이 출력되도록할수있다.

        

    <!-- redirect -->
        <action name="LoginAction2" class="action.LoginAction">
            <interceptor-ref name="params"/>
            <result name="success" type="redirect">loginSuccess.jsp</result>
        </action>


=> URL이  loginSuccess.jsp로 변경되고 이전 페이지의 정보가 유지되지 않아 실행결과 페이지에 userid와 message값이 출력되지않았다.

+ Recent posts