jsp aanroepen vanuit applet met input

Pagina: 1
Acties:
  • 187 views sinds 30-01-2008
  • Reageer

  • morpheus
  • Registratie: November 1999
  • Laatst online: 12-09 17:35
Ik wil dus vanuit een applet een jsp aanroepen, maar dan zodanig dat die applet gegevens meegeeft vergelijkbaar met de volgende html syntax.

<FORM name="form" method="post" action="https://www.test.nl/test.jsp">

<INPUT type="hidden" name="gegeven1" value="blabla">
<INPUT type="hidden" name="gegeven2" value="blabla2">
</FORM>

3kwp pvoutput


  • morpheus
  • Registratie: November 1999
  • Laatst online: 12-09 17:35
Een eventuele andere oplossing zou ook kunnen

een html pagina die een applet bevat. Een javascript zou dan de gegevens kunnen sturen op het moment dat de applet is afgelopen. Maar dat lijkt me ook lastig om te doen, een javascript die wat aan een applet vraagt of ie afgelopen is.

3kwp pvoutput


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Kijk eens goed naar het HTTP protocol en dan in het bijzonder de post method.... Je kan eventueel gewoon een java Socket openenen en daar een HTTP post message overheen sturen.

Er zijn vast ook wel enkele libs beschikbaar die dit op een wat abstractere manier bieden. Zelf heb ik het weleens geimplementeerd en het is niet erg moeilijk.

Dit is meer Programming denk ik. Het probleem zit hem in de Applet en niet in de JSP -> geen Webscripting. In ieder geval geen Webdesign :P

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

applet programmeren lijkt me idd Programming, moved vanuit W&G

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

als het met get kan, kun je ook gewoon de jsp als een URL aanroepen vanuit je applet..

Verwijderd

Waarom moeilijk doen als het makkelijk kan ?? Gewoon ff zoeken in de Java Classes en dan vind je wel ergens iets met HTTP. Ik geloof ergens tussen de Sun.network classes, maar ik weet het niet zeker (ik gebruik idd de eerdergenoemde outputstreams in combinatie met sockets)

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Mister Java bedoelt dus de java.net package.

Damn wat doen jullie allemaal moeilijk... Nah ja, moeilijk, maar wat jullie handmatig doen is al voorzien in de Java API zonder geklooi met de Sun classen, waar je indien je echt netjes programmeert niet direct mee gaat klooien.

Kijk is in de java API naar HttpURLConnection, dit is een overerving van URLConnection. (toevallig ;) )

Dit geval heeft een methode:
code:
1
setRequestMethod(String method)

en raad is wat de inhoud van de String method mag zijn: GET POST HEAD OPTIONS PUT DELETE TRACE

Hee verrek, je kan instellen wat voor request je wil doen.

Kijken we even naar de methoden die HttpURLConnection heeft overgeerfd van URLConnection, en ja hoor wat zien we daar member method:
code:
1
setRequestProperty(String key, String value)

Ik zou zeggen, maak gebruik van deze methoden.

[beetje OT]
Weet ik het nou eindelijk een keer beter dan MBravenboer? :? :P
[/beetje OT]

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
The - DDD: Weet ik het nou eindelijk een keer beter dan MBravenboer? :? :P
Hehe ;) . Inderdaad ;) .

Ik meende me wel te herrinneren dat die voorzieningen er wel waren want had er eens naar gekeken. Ik had voor een SOAP implementatie echter: Expect: 100-continue nodig en zonder te testen heb ik maar ff aangenomen dat HttpURLConnection dat niet ondersteunt.
Ik zal voortaan weer beter bij de les zijn ;) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Op woensdag 24 oktober 2001 00:57 schreef mbravenboer het volgende:
Ik meende me wel te herrinneren dat die voorzieningen er wel waren want ...
Jaaaa ja, probeer je er maar uit te smoezen... ;)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
The - DDD: Jaaaa ja, probeer je er maar uit te smoezen... ;)
Hehe ;) . Ik kan ondertussen geen HTTP Post meer zien :( . Ik zat al de hele dag te klooien om m'n SOAP implementatie in Java (die werkte met .NET beta 1) in .NET beta 2 aan de praat te krijgen. Het is werkelijk verschrikkelijk.... Ik ben nu vrijwel exact dezelfde SOAP message als een .NET client en nog werkt het niet :( :( .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • morpheus
  • Registratie: November 1999
  • Laatst online: 12-09 17:35
Op woensdag 24 oktober 2001 00:38 schreef The - DDD het volgende:
Mister Java bedoelt dus de java.net package.

Damn wat doen jullie allemaal moeilijk... Nah ja, moeilijk, maar wat jullie handmatig doen is al voorzien in de Java API zonder geklooi met de Sun classen, waar je indien je echt netjes programmeert niet direct mee gaat klooien.

Kijk is in de java API naar HttpURLConnection, dit is een overerving van URLConnection. (toevallig ;) )

Dit geval heeft een methode:
code:
1
setRequestMethod(String method)

en raad is wat de inhoud van de String method mag zijn: GET POST HEAD OPTIONS PUT DELETE TRACE

Hee verrek, je kan instellen wat voor request je wil doen.

Kijken we even naar de methoden die HttpURLConnection heeft overgeerfd van URLConnection, en ja hoor wat zien we daar member method:
code:
1
setRequestProperty(String key, String value)

Ik zou zeggen, maak gebruik van deze methoden.

[beetje OT]
Weet ik het nou eindelijk een keer beter dan MBravenboer? :? :P
[/beetje OT]
dank u voor deze wijsheid grootheid :+

damn, met wat logisch nadenken had ik dat dus ook wel kunnen vinden. Zat inderdaad al aan de URLConnection te denken, maar die bracht niet zo makkelijk wat ik wilde bereiken. Ik ga maar eens flink schamen :) anyway, thanks

3kwp pvoutput


  • morpheus
  • Registratie: November 1999
  • Laatst online: 12-09 17:35
toch nog een vraagje wat me nog niet duidelijk wordt nu ik alles aan het doornemen ben.

Het volgende wil ik immers bereiken.

De applet moet een jsp aanroepen en daar dus wat waardes naartoe posten. De jsp moet het daarbij overnemen en dus op de desbetreffende pagina van de applet een nieuwe html vormen.

Zoals het nu lijkt gaat HttpUrlConnection dit niet voor mij regelen ben ik bang :(

nog enkele tips?

3kwp pvoutput


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op woensdag 24 oktober 2001 10:53 schreef morpheus het volgende:
toch nog een vraagje wat me nog niet duidelijk wordt nu ik alles aan het doornemen ben.

Het volgende wil ik immers bereiken.

De applet moet een jsp aanroepen en daar dus wat waardes naartoe posten. De jsp moet het daarbij overnemen en dus op de desbetreffende pagina van de applet een nieuwe html vormen.

Zoals het nu lijkt gaat HttpUrlConnection dit niet voor mij regelen ben ik bang :(


nog enkele tips?
in jsp kun je met out.println("") tekst naar de broswer sturen, en met response.sendRedirect(""); redirecten

is dat een antwoord op je vraag :?

  • morpheus
  • Registratie: November 1999
  • Laatst online: 12-09 17:35
hmmm, niet echt helemaal

de jsp pagina bestaat al en daar wil ik voorlopig even nog niet aankomen. Op dit moment wordt die jsp pagina dus aangeroepen door een html pagina.

Deze opzet wordt licht verandert zodat een applet deze aanroep moet doen. Nu heb je wel de de URL optie, waarmee je ook wat kan meesturen. Er moet echter ook een HD adres als c:\blaat\nogwat.zip meegestuurd worden. Die backslash veroorzaakt daarbij moeilijkheden omdat dat met %5 wordt gedaan. En om nu alles eerst te gaan zitten omvormen lijkt me ook niets.

3kwp pvoutput


  • morpheus
  • Registratie: November 1999
  • Laatst online: 12-09 17:35
of is het mogelijk dat de inputstream die dan terugkomt de pure html is dat ik dan vanuit de applet de browserwindow waarin deze draait vervangt door de html pagina die terug ontvangen is.

3kwp pvoutput


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Als je je JSP pagina vanuit een applet aanroept komt het resultaat inderdaad in de applet terecht.

Volgens mij is het niet mogelijk om de uitvoer van de JSP pagina als HTML pagina te laten weergeven in je browser... Je kan namelijk alleen een URL zetten met showDocument().

Misschien is het mogelijk om de JSP pagina een (tijdelijke) URL te laten opleveren ipv content?

Dit probleem zou trouwens wel perfect opgelost kunnen worden met de Weblets van IBM vermoed ik zo...

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • morpheus
  • Registratie: November 1999
  • Laatst online: 12-09 17:35
ik denk dat ik het allemaal op een andere manier ga oplossen

Ik laat een html file genereren die de gegevens bevat voor de submit (hidden) en tevens de applet die wat moet doen. Als deze applet afgelopen is gaat tie als laatste commando een javascript op de page starten die de submit moet doen.

denk dat dat de beste oplossing is voor wat ik wil.

3kwp pvoutput


  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Wacht is even, je wil dus met een applet iets posten naar een JSP pagina en deze pagina vervolgens weergeven in je browser (en er ondertussen dus de pagina met applet vervangend). Is dat wat je wil...

Dus dat je Applet als het ware een interface is om de POST naar de JSP in te vullen. Deze post wordt gedaan en de resulterende pagina moet FULL screen in je browser.

Of moet ie in een Frame... Dus leg is even uit WAAR de resultaten van je JSP pagina moeten komen.

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Op woensdag 24 oktober 2001 13:47 schreef morpheus het volgende:
of is het mogelijk dat de inputstream die dan terugkomt de pure html is dat ik dan vanuit de applet de browserwindow waarin deze draait vervangt door de html pagina die terug ontvangen is.
In je applet dit doen:
code:
1
2
3
4
AppletContext context = getAppletContext();
context.showdocument(jouHttpURL);
//of je doet
//context.showdocument(jouHttpURL, "naamframeWaarHetInMoet");

Ja, je kan dus de HTTP target gebruiken. Dus als je bijvoorbeeld je applet in het ene frame hebt staan kun je vanuit je applet een ander frame content laten laden, net zoals met html het target verhaal werkt.

Je kan _self, _parent, _top, _blank of de naam van een frame die jij hebt aangemaakt meegeven. Werkt perfect.

  • morpheus
  • Registratie: November 1999
  • Laatst online: 12-09 17:35
Op woensdag 24 oktober 2001 20:19 schreef The - DDD het volgende:
Wacht is even, je wil dus met een applet iets posten naar een JSP pagina en deze pagina vervolgens weergeven in je browser (en er ondertussen dus de pagina met applet vervangend). Is dat wat je wil...

Dus dat je Applet als het ware een interface is om de POST naar de JSP in te vullen. Deze post wordt gedaan en de resulterende pagina moet FULL screen in je browser.

Of moet ie in een Frame... Dus leg is even uit WAAR de resultaten van je JSP pagina moeten komen.
Zoals je het zegt klopt het ja. De applet roept een JSP aan waar wat POST gegevens naar toemoeten welke vervolgens een html genereert en deze terugstuurt. De pagina waar de applet in staat moet vervangen worden door de pagina die de JSP heeft gegenereerd.

Nu kun je inderdaad makkelijk met dit
code:
--------------------------------------------------------------------------------
AppletContext context = getAppletContext();
context.showdocument(jouHttpURL);
//of je doet
//context.showdocument(jouHttpURL, "naamframeWaarHetInMoet");
--------------------------------------------------------------------------------

de jsp aanroepen en daarin met ?blaat=nogwat iets laten meesturen. Echter, moet er ook iets als c:\blaat\nogwatblaat.zip meegestuurd worden en deze \ tekens gaan als %5 over het net. Ik heb geen zin om dat te gaan zitten converten natuurlijk.

3kwp pvoutput

Pagina: 1