2011-10-05 10 views
16

Ho bisogno di aiuto. Nel mio attuale sviluppo uno dei requisiti dice:Impostazione di una stringa in un corpo di httpResponse

Il server restituirà 200-OK come risposta (httpresponse).

Se il panelista viene verificato, di conseguenza, il server deve anche restituire l'ID del panelista di questo panelista.

Il server posizionerà il panelist id all'interno del corpo del 200-OK risposta nel modo seguente:

<tdcp> 

<cmd> 

    <ack cmd=”Init”> 

     <panelistid>3849303</panelistid> 

    </ack> 

</cmd> 

Ora sono in grado di mettere la HttpResponse come

httpServletResponse.setStatus(HttpServletResponse.SC_OK); 

E posso mettere

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

Ora che cosa significa inserire il codice XML sopra nel corpo della risposta 200-OK e come può essere ottenuto?

risposta

4

È sufficiente ottenere il flusso di output (o output writer) della risposta della servlet e scrivere in tale posizione. Vedi ServletResponse.getOutputStream() e ServletResponse.getWriter() per ulteriori dettagli.

(o semplicemente leggere qualsiasi servlet esercitazione - senza la possibilità di includere i dati nei corpi di risposta, servlet sarebbe abbastanza inutile :)

30

È possibile scrivere il codice XML direttamente alla risposta come segue:

Questo esempio utilizza uno ServletResponse.getWriter(), che è un PrintWriter per scrivere una stringa per la risposta.

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() non è una buona idea. In generale non è una buona idea chiudere un flusso che non è stato aperto da te. – Tarlog

0

Se che è destinata ad essere XML, Word ha già rovinato le cose per voi, cambiando il simbolo dell'attributo citazione a invece di ".

Vale la pena dare un'occhiata a JAXP se si desidera generare XML utilizzando Java. La scrittura di stringhe con < ecc. In esse non verrà ridimensionata e ti imbatterai in problemi con codifiche di caratteri non ASCII.

Problemi correlati