2012-03-27 2 views
5

내가 나를 스트럿 하나를 사용하여 앞에있는 일부 레거시 코드를 통해 찾고, 내가 참조 :리디렉션 또는 앞으로

<global-forwards> 
    ... 
    <forward name="accessDenied" path="/www/jsp/AccessDeniedForm.do" redirect="true" /> 
</global-forwards> 

그래서 그것은 액세스 거부 페이지로 보낼 단지 글로벌 앞으로입니다. 전달하는 것과 반대 방향으로 리디렉션하는 결정에 대해 궁금합니다. 사용의 장단점은 무엇입니까?

+0

Answer 나는 여기 찾고 있습니다 ... http://stackoverflow.com/questions/614516/why-use-redirect-true-in-struts-1-forward이 스레드는 복제로 닫을 수 있습니다. 죄송합니다. – dublintech

답변

5

프로를 사용하는 것이 무엇입니까? 프로의 양론의 true로 설정 리디렉션와 그 앞으로 요소를 사용하는이의가 실제로 구성에 무슨 일이 일어나고 있는지 이해하게 논의하기 전에

. forward 요소에서 redirect가 true로 설정되면 사용자 에이전트에 redirect 명령을 내 보내야이 전달 자원에 대해 새 요청이 발생해야합니다. 이 link은 필요한 세부 정보를 제공 할 것입니다.

리디렉션의 기본값은 false입니다. 기본적으로 전달 요소가 호출되면 지정된 경로로 전달되고 그 경로가 전달됩니다. 리디렉션을 true로 설정하면 예를 들어 브라우저가 다른 요청을합니다. 그래서 저는 이것들이 당신이 정말로 그것을 사용하기를 원한다면 당신은 아마 프로 (pro)와 사기 (con)에 대해 알고 있거나 생각하고 있다고 생각합니다.

1

리디렉션에서 컨트롤을 다른 서버 또는 다른 도메인 이름으로 지정할 수 있습니다. 리디렉션은 왕복을 필요로합니다. 리디렉션이 실행되면 클라이언트로 다시 보내지고 리디렉션 된 URL 정보가 헤더에 있습니다. 브라우저가 다음 URL로 이동하도록 지시합니다. 이것은 새로운 요청으로 작동하며 모든 요청 및 응답 데이터는 손실됩니다.

전달에서 전달은 서버 측에서 수행되며 클라이언트 브라우저 URL은 변경되지 않습니다. 데이터도 손실되지 않습니다. 이는 브라우저 페이지 새로 고침과 같습니다. 첫 번째 제출에 게시 된 모든 데이터가 다시 제출됩니다. 조심해서 사용하십시오.

전달 및 리디렉션 모두 다른 시나리오에서 사용되는 경우 오류 전황이므로 글로벌 전달은 리디렉션되어야합니다.

리디렉션은 왕복이 필요하므로 느립니다. 포워드가 더 빠릅니다.

+0

전달 및 리디렉션의 차이점을 이해합니다. 난 그냥 프로와 사기꾼 모두의 접근 방식과 언제 당신의 struts 구성에서 각 접근 방식을 사용하여 찾고 있어요. – dublintech

+0

장단점 또한 위의 대답에서 설명합니다. – cherit

0

당신이

리디렉션 = "true"를 지정하는 경우는, Struts는 클라이언트 측

[위해 response.sendRedirect()]

리디렉션 사용합니다. JSP는 새 브라우저 요청에 의해 호출되며 이전 요청에 저장된 모든 데이터는 손실됩니다.