- 리절트 타입 Dispatcher 와 Redirect 의 차이

   예) 기본 리절트 타입 설정(type="dispatcher") 기본타입이므로 생략 가능

         <action name="LoginAction" class="action.LoginAction">

                 <interceptor-ref name="params"/>

     <result name="success" type="dispatcher">/jsp/loginSuccess.jsp</result>

         </action>


   예) Redirect 리절트 타입 설정(type="redirect)

         <action name="LoginAction" class="action.LoginAction">

                 <interceptor-ref name="params"/>

     <result name="success" type="redirect">/jsp/loginSuccess.jsp</result>

         </action>



 - 두 리절트 타입의 차이점

    ①  redirect 리절트 타입

         - JSP 에서 response.sendRedirect(" "); 메서드를 호출한 것과 같은 효과를 낸다.

         - 같은 효과가 모냐고 물으신다면...

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

            URL 로 새롭게 서버와 연결이 되므로 request 가 새롭게 생성되는 것을 의마한다.

            웹 브로우저에 나타나는 URL도 바뀐다.(마지막 redirect 로 설정한 URL 이 표시됨.)

     ② dispatcher 리절트 타입(기본타입 - 생략가능)

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

           그 뜻은, redirect 타입처럼 새로 request 를 생성하는 것이 아니라 요청처리를 다른 웹 리소스로 위임하는 것이다.

           따라서, 웹 브라우저 상의 요청 URL 이 바뀌지 않는다.

   


※ 이건 구지 테스트 할 필요가 없을 것 같다. 액션 처리 후 리절트 페이지에서 URL 이 바뀌냐 안바뀌냐의 차이일뿐이니깐

     dispatcher 이면 페이지에서 지정한 action 페이지 URL 이 보일것이고,(위의 예를 들자면 action.LoginAction)

     redirect 이면 actino 처리 후 result 에 지정한 경로가 보일 것이다.(/jsp/loginSuccess.jsp)

+ Recent posts