2012-01-13 3 views
0

특정 조건을 기반으로 요청을 특정 URL로 전달하기 위해 서블릿 필터를 작성하여 타사 앱의 동작을 변경하려고했습니다.will.getDispatcher ("/ newurl"). forward() ajp를 통해 tomcat에 연결된 apache를 사용할 때 작동합니까?

처음에는 request.getDispatcher(url).forward();으로 시도했지만 url을 찾을 수 없다는 것을 보여주는 404 페이지가 항상 표시되었습니다. 나는 이것을 request.sendRedirect 대신 사용했지만, 지금은 단지 404 스크린이 내가 일반적으로 바람둥이에 의해 서버를 보는 것임을 깨달았다.

이 인스턴스에서 구성에 대해 생각하게되었습니다. 제가 전달하려고하는 URL은 cgi 스크립트입니다. 우리는 프런트 엔드로서 ajp 커넥터를 통해 연결된 아파치를 가지고 있으며 아파치는 cgi 스크립트를 실행하도록 구성되어 있습니다.

그래서 내 질문은 서블릿 필터의 포워드가 아파치로 만들었나요 아니면 앞으로 바람둥이가 특별히 처리하는 포워드인가요? 그래서 작동하지 않는 이유는 무엇입니까?

답변

1

이제까지는

RequestDispatcher.forward 하나 개의 내부 구성 요소에서 흐름 제어를 전송하는데 사용되는 애플리케이션 서버의 웹 애플리케이션 내의 내부 동작 (예 서블릿) 아파치 수 있도록 서블릿 필터로부터 전달하실 않았다 (예 : JSP). CGI 스크립트와 같이 응용 프로그램 서버 외부의 자원으로 전달할 수 없습니다. 리디렉션을 사용해야합니다.

+0

감사합니다. 그것은 꽤 의심 스럽지만 일어난 일을 해결하는 데 약 20 분이 걸렸습니다. 먼저 URL 인코딩과 관련이 있다고 생각했기 때문에 존재하지 않는 문제를 수정하려고했습니다. 리디렉션은 정상적으로 작동하므로 잘 끝납니다. –