2011-10-05 3 views
16

도움이 필요합니다. 현재 개발 중에는 다음 중 하나가 필요합니다.httpResponse 본문에 문자열 설정

서버는 응답으로 200-OK를 반환합니다 (httpresponse).

결과적으로 패널티스트가 확인되면 서버는 이 패널 멤버의 ID를 반환해야합니다.

다음과 같은 방법으로 200 OK 응답의 몸 내부의 패널리스트 ID를 배치합니다 서버 :

<tdcp> 

<cmd> 

    <ack cmd=”Init”> 

     <panelistid>3849303</panelistid> 

    </ack> 

</cmd> 

가 지금은

으로 HttpResponse에 넣을 수 있어요
httpServletResponse.setStatus(HttpServletResponse.SC_OK); 

내가 넣을 수 있습니다.

String responseToClient= "<tdcp><cmd><ack cmd=”Init”><panelistid>3849303</panelistid></ack></cmd></tdcp>";

이제 200-OK 응답의 본체 안에 위의 XML을 넣는 방법과 그 결과를 얻을 수 있습니까?

답변

4

서블릿 응답의 출력 스트림 (또는 출력 작성기)을 가져 와서 쓰기 만하면됩니다. 자세한 내용은 ServletResponse.getOutputStream()ServletResponse.getWriter()을 참조하십시오.

(또는 간단히 서블릿 튜토리얼 읽기 - 응답 본문에 데이터를 포함 할 수있는 능력이없는을, 서블릿 꽤 쓸모 :) 것

30
다음과 같이 응답에 직접 XML을 쓸 수

:

이를 예를 들어 PrintWriterServletResponse.getWriter()을 사용하여 응답에 문자열을 씁니다. 그는 XML을 될 운명이라면

String responseToClient= "<tdcp><cmd><ack cmd=”Init”><panelistid>3849303</panelistid></ack></cmd></tdcp>"; 

httpServletResponse.setStatus(HttpServletResponse.SC_OK); 
httpServletResponse.getWriter().write(responseToClient); 
httpServletResponse.getWriter().flush(); 
httpServletResponse.getWriter().close(); 
+21

httpServletResponse.getWriter(). close()는 좋은 생각이 아닙니다. 일반적으로 당신이 열지 않은 스트림을 닫는 것은 좋지 않습니다. – Tarlog

0

는 말씀은 이미 대신 "에 속성 인용 기호를 변경하여 당신을 위해 일을 버릇했다.

Java를 사용하여 XML을 생성하려면 JAXP을 살펴 보는 것이 좋습니다. < 등으로 문자열을 쓰면 크기가 조정되지 않고 비 ASCII 문자 인코딩 문제가 발생합니다.