Renvoyer des données à partir de Servlet Java Client
Salut j'ai un problème avec le renvoi de données à partir de Servlet Java Client.
C'est la première fois que j'utilise un servlet.
Tous les exemples que j'ai vu sur le web de données de retour d'une page HTML, mais je veux faire un Serveur-Client logiciel Serveur où faire quelque chose et de revenir une Liste de chaînes.
Comment puis-je retourner à partir d'un method GET/POST un Tableau à un Client? Que dois-je mis dans setContentType?
Je n'ai pas à comprendre comment j'ai mis en réponse à l'information que je veux (comme int , tableau , Chaîne de caractères) et de retour au Client.
Si quelqu'un pouvait faire un exemple où un Client Java faire une requête POST et une Servlet revenir à lui un Tableau ou liste de tableaux, je serais très heureux.
OriginalL'auteur Strom | 2011-10-20
Vous devez vous connecter pour publier un commentaire.
Vous êtes en cours d'exécution dans le problème de sérialisation. La sérialisation est l'endroit où vous convertir des données dans un format qui peut être transmise. Il y a plusieurs manières de le faire, certaines sont mentionnées dans d'autres réponses.
Je vous suggérons d'utiliser JSON comme format. Vous pouvez obtenir une belle librairie JSON pour java à partir de json.org. Ensuite, vous pouvez simplement créer un tableau JSON avec la bibliothèque et de l'écrire à la servlet OutputStream.
Maintenant à partir de votre client, vous pouvez en faire la demande et obtenir de nouveau à votre liste de tableaux comme suit:
OriginalL'auteur Jack Edmonds
Vous semblez avoir besoin d'un service RESTful sur http. Vous devez choisir la façon dont vous voulez sérialiser vos objets. Le choix typique est JSON - vous serlialize l'objet en JSON et de l'écrire à la réponse (avec
Content-Type
ensemble deapplication/json
Il y a des cadres qui ne font que prendre un coup d'oeil à Spring MVC ou Jersey/Resteasy
Si vous voulez quelque chose de plus bas niveau, vous pouvez utiliser le RMI ou les douilles directement, sans l'aide d'une servlet. Les Servlets sont destinées à répondre à des requêtes HTTP, qui ne peuvent transmettre que des données textuelles.
OriginalL'auteur Bozho
De l'OMI, vous aurez envie de revenir données en XML ou JSON, ce qui en fait génération de clients beaucoup plus facile. Sans savoir ce que votre client est en fait, il est difficile d'être d'une grande aide, cependant.
OriginalL'auteur Dave Newton
L'envoi d'Objets natifs ne peuvent pas facilement être réalisé, mais JSON est une alternative bon marché.
Utiliser une bibliothèque comme GSON de sérialiser /désérialiser vers /à partir de JSON.
n'hésitez pas à ajouter comme une réponse. Jusqu'à présent, toutes les réponses vous recommandons de JSON.
OriginalL'auteur Sean Patrick Floyd
Vous pourriez juste envelopper la réponse flux de sortie à l'intérieur d'un
ObjectOutputStream
et écrire votre objet Java (qui devrait être sérialisable) à laObjectOutputStream
. Du côté client, envelopper le flux d'entrée à l'intérieur d'unObjectInputStream
, utilisezreadObject
, et jeté le résultat prévu de type d'objet.Ce cours fait la servlet seulement utilisable par les clients de l'écrit en Java, et qui partagent les mêmes classes que le serveur. Habituellement, un service qui offre une interface HTTP est destiné à être utilisé par tout type de client, et de manière plus ouverte est le format choisi, comme XML ou JSON. Mais si c'est ce que vous avez besoin, pourquoi ne pas utiliser la sérialisation native. C'est ce qui Ressort HttpInvoker n', BTW.
OriginalL'auteur JB Nizet