2013-04-25 1 views
0

웹 응용 프로그램 및 클라이언트 - 서버 응용 프로그램에서 몇 가지 필터 클래스를 공유하는 일반적인 시나리오가 있습니다. 이러한 필터 클래스에서 예외가 발생하면 특정 json 문자열을 클라이언트에 보내야합니다. 하지만 웹 응용 프로그램에는 아무 것도 없습니다 (일반 JSP를 표시하려고하기 때문에). 내가 응답web.xml을 통해 응답 버퍼를 플러시하는 방법은 무엇입니까?

response.getWriter().println(responseObject.toString()); 
response.flushbuffer(); 

에게 보내 folloiwng 코드를 사용하고

이제 문제는 내 클라이언트 응용 프로그램이 잘 작동하지만, (리스폰스가 최선을 다하고 있기 때문에) 상단에있는 responseobj를 표시 JSP,이다. 그러나 flushbuffer()를 제거하면 jsp가 제대로 작동하고 클라이언트 응용 프로그램에서 json 객체를 구문 분석 할 수 없습니다.

이 상황을 해결하는 방법에 대한 실마리가 없습니다. web.xml을 통해 응답 버퍼를 플러시하는 방법이 있는지 궁금합니다. 그래서 클라이언트 - 서버 응용 프로그램의 web.xml을 변경하고 웹 응용 프로그램의 web.xml을 그대로 둘 수 있습니다.

답변

0

일부 HTML이 서버를 떠나 브라우저로 이동하면 다시 가져 와서 JSON으로 응답을 변경할 수 없습니다.

  • 지연이 HTML (정말 지연 출력 아무것도) 출력 올바른/최종 응답입니다 확인을 때까지 :

    당신은 기본 옵션의 몇 내가 생각합니다.

  • 응답 래퍼를 사용하십시오 (이 대답과 같습니다 - Capture and log the response body). 나는. 응답/모두을 저장하고 필터는 그 중 일부를 사용할지, 일부만 사용할지, 모두를 사용할지 또는 JSON을 대신 반환 할지를 선택할 수 있습니다.
+0

폴. 나는이 일을 할 필요가 없었습니다. flushbuffer()없이 클라이언트에서 응답을받을 수있었습니다. – Shweta

관련 문제