web-dev-qa-db-fra.com

Définir une chaîne dans un corps de httpResponse

J'ai besoin d'aide. L'une des exigences de mon développement actuel est la suivante:

Le serveur retournera 200-OK en réponse (httpresponse).

Par conséquent, si le panéliste est vérifié, le serveur doit également renvoyer l'identifiant du panéliste de ce panéliste.

Le serveur place l'identifiant du panéliste dans le corps du 200-OK réponse de la manière suivante:

<tdcp>

<cmd>

   <ack cmd=”Init”>

      <panelistid>3849303</panelistid>

   </ack>

</cmd>

Maintenant, je suis capable de mettre la httpresponse comme 

httpServletResponse.setStatus(HttpServletResponse.SC_OK);

Et je peux mettre

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

Maintenant, que signifie l'insertion du code XML ci-dessus dans le corps de la réponse 200-OK et comment peut-on l'obtenir?

26
vibhas

Vous pouvez écrire le code XML directement dans la réponse comme suit:

Cet exemple utilise ServletResponse.getWriter(), qui est une PrintWriter pour écrire une chaîne dans la réponse.

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();
50
Buhake Sindi

Vous devez simplement obtenir le flux de sortie (ou le rédacteur de sortie) de la réponse du servlet et y écrire. Voir ServletResponse.getOutputStream() et ServletResponse.getWriter() pour plus de détails.

(Ou tout simplement lire n'importe quel didacticiel de servlet - sans la possibilité d'inclure des données dans le corps des réponses, les servlets seraient plutôt inutiles :)

6
Jon Skeet

Si cela est censé être du XML, Word vous a déjà gâché des choses en changeant le symbole de citation d'attribut en au lieu de ".

Il vaut la peine de regarder JAXP si vous voulez générer du XML en utilisant Java. L'écriture de chaînes avec < etc. dans celles-ci ne sera pas mise à l'échelle et vous rencontrerez des problèmes d'encodage de caractères non-ASCII.

0
artbristol