applet-> servlet-> een recordbestand (op de server): hoe doe ik dit?

Om een ​​enquêteformulier te maken met behulp van een applet, wilde ik weten hoe mijn applet kan communiceren met een servlet. Die servlet is bedoeld om het resultaat naar het tekstbestand op de server te schrijven. Ik heb geen idee hoe kan ik dit doen.

0
"Ik heb geen idee hoe ik dit kan doen." Wat is dit? Maak een applet? Verbind een applet met een webservice? De webservice implementeren? En terzijde. Kan de persoon die dacht: "Deze vraag toont onderzoeksinspanning, het is nuttig en duidelijk" hun logica uitleggen? Ik denk dat het tot nu toe aan geen van deze drie criteria voldoet.
toegevoegd de auteur Andrew Thompson, de bron

3 antwoord

De applet en de servlet zijn gescheiden. Er is geen eenvoudige manier om magie te gebruiken om dit gemakkelijker te maken.

Een servlet is een fragment in een webserver dat wordt uitgevoerd wanneer een HTTP-verzoek wordt gedaan naar de juiste URL op de webserver. Daarom moet u een HTTP-verzoek indienen bij de juiste URL op de webserver waarop uw servlet wordt uitgevoerd.

Dit gebeurt op dezelfde manier als elke andere HTTP-aanvraag van een applet, die op dezelfde manier wordt gedaan als een HTTP-verzoek van een zelfstandige toepassing.

1
toegevoegd

U zou java.net.URLCconnection hiervoor.

Ervan uitgaande dat uw servlet is toegewezen aan een URL-patroon van /myservlet en uw applet is weergegeven vanuit de contextroot, moet dit het volgende doen:

InputStream servletResponse = new URL(getCodeBase(), "myservlet").openStream();
// ...

Dat is alles. De getCodeBase() is overgenomen van de applet -klasse en retourneert de codebase-URL van de applet dynamisch (van waaruit de applet is gedownload). De servletResponse bevat alles wat u hebt geschreven naar response.getOutputStream() of response.getWriter() in de servlet. Bijvoorbeeld een "ok" -tekenreeks of een gemakkelijk te parseren indeling zoals xml of JSON. U kunt verzoekparameters doorgeven als een querytekenreeks in de GET-aanvraag-URL of in de POST-aanvraagtekst.

Zie ook:

1
toegevoegd
Er ontbreekt iets, maar ik weet niet wat het is. Code die wordt weergegeven wanneer ik op de knop klik de applet om HTTP-get-aanvraag af te vuren . Dit is de code in de servlet. Dit is de code in de doGet-methode Hoewel de doGet -methode van de servlet wordt aangeroepen, maar ik zie geen servlet of een jsp-pagina in de browser. waarom is dat ? Ik zie alleen een bericht in doGet-methode in het serverlogboek. wat mis ik?
toegevoegd de auteur saplingPro, de bron

Nou, je hebt verschillende opties voor de applet/servlet-communicatie ....

  • http requests. (This may be the easiest). For this you can use Apache HTTP Components
  • Remote Method Invocation RMI. This may be more complicated than http requests but it depends on what you want to achieve.
  • Sockets. (I think http requests is flexible enough for your use case but just in case)
  • javascript. You can call a JavaScript function from your applet and let the JavaScript function submit the information to the servlet through ajax, websockets, etc.

Natuurlijk zijn er veel andere opties, maar dit zijn enkele ideeën en onthoud dat u mogelijk uw applet moet ondertekenen.

Als je vraag gaat over hoe je naar een bestand schrijft, zijn er veel tutorials. Hier is een goede

0
toegevoegd