Aufruf einer Methode aus webservice innerhalt der index.jsp?

Hallo

Ich habe ein webservice mit netbeans erzeugt der unteranderem diese Methode hier hat


    /**
     * Web service operation
     */
    @WebMethod(operationName = "gibSumme")
    public int gibSumme(@WebParam(name = "n") int n) {
      
        return   n+n;
    }

Bis jetzt mache ich das so, das in einer index.jsp ich ein Formular habe, mit dem ich einen Wert eingeben kann und senden drücken kann. Es wird per Post an ein Servlet gesendet, welches wiedrum den webservice nutzt. Per response sende ich das ergebnis wieder an der Browser.

Ich möchte jetzt diesen Servlet weglassen und in die index.jsp direkt Java Code schreiben. Nach vielen Stunden googlen habe ich das nicht geschafft.
Wie rufe ich eine webservice methode direkt aus der jsp auf?

lg

Java-Code ist Java-Code, in einer JSP vielleicht grottig schlecht zu schreiben und miese import-Statements und keine Compiler-Fehlermeldung vor Ausführung, aber der Web-Aufruf bleibt genau gleich,
was hast du denn im Servlet versucht, was in der JSP, was läßt sich vermuten dass es noch nicht geschafft ist?

vielleicht hast du aber auch eine ganz falsche Vorstellung von der JSP, so dass die Versuche obsolet sind:
ein JSP ist mit einem Servlet äquivalent, nur tut sich das Servlet leichter mit Java-Befehlen, das JSP mit HTML-Formatierungen

es gibt zwei folgende Schritte im Ablauf beginnend ab einer bestimmten Position mittendrin:

1.) der Server baut das HTML für das Formular auf,
kann ein Servlet machen: out.println(""); kann aber eine JSP besser,

Java-Befehle in der JSP mögen helfen aktuell benötigte Daten zu laden (welchen User anzeigen, welche Fragen im Formular),
aber am Ende kommt HTML raus, evtl. mit JavaScript für den Client,
als Text in die Welt verschickt

2.) der Client sieht die HTML-Seite, kann darin was eintippen, Post senden, evtl. JavaScript-Kommandos ausführen,
woher die Seite kam, ob aus lokalen Cache, ob beim Server von der Festplatte, aus einem Servlet oder einer JSP dynamisch zusammengestellt, das kann kann nicht erkennen,

die JSP hat hier nichts mehr zu sagen, auf keinen Fall können Java-Befehle der JSP im Client ausgeführt werden,

JavaScript ist ne andere Sache, ob und wie da ein WebService-Aufruf geht?..

3.) das Post von einem Formular kommt im Server an,
wenn nun umfangreiche Logik-Aufgaben wie WebService zu erledigen sind, dann eignet sich dafür ein Servlet,
kann am Ende zur Darstellung der Reaktion an ein beliebiges JSP verweisen (oder selber HTML zusammenbauen)

das Post könnte auch gleich an ein bestimmtes JSP gehen, dort die Verarbeitung des Posts wie WebService-Aufruf in kruden eingebetteten Java passieren, aber nicht zu empfehlen…

danach folgt evtl. noch 1) eingeschoben oder wieder 2) usw.

Alle schreiben das was du schreibst. Aber es ist eine Hausaufgabe

Programmieren sie die einen Webservice der dies tut…

  1. Nutzen Sie den Service über ein servlet <— das habe ich
  2. Nutzen Sie den Service ohne Server sondern nur über die JSP <— ???

Ist das den unmöglich?

steht bei 2. wirklich ‘ohne Server’ oder ‘ohne Servlet’?
im letzteren Fall gilt dass JSP die komplette Aufgabe des Servlets übernehmen kann:

[quote=SlaterB]Java-Code ist Java-Code, in einer JSP vielleicht grottig schlecht zu schreiben und miese import-Statements und keine Compiler-Fehlermeldung vor Ausführung, aber der Web-Aufruf bleibt genau gleich,
was hast du denn im Servlet versucht, was in der JSP, was läßt sich vermuten dass es noch nicht geschafft ist?[/quote]
auch wenn das nicht nach sinnvoller Beschäftigung für eine Aufgabe aussieht


ob ansonsten JavaScript beim Client gemeint ist…,
ich halte von Interpretationen und Rätseln, die kein klares logisches Problem beschreiben, nichts

sobald der Server sein HTML verschickt welches das Formular im Browser darstellen soll ist vom JSP nichts mehr übrig,
soviel ist Gewissheit

Ich tippe auch darauf, dass es heißt das dies ohne “Servlet” geschehen soll.

Das Formular der JSP sendet in seiner Action nicht an das Servlet sondern z.B. per Post an sich selbst.

Die Abfrage ob es Post oder GET ist kann man per request.getMethod() herausfinden und dann mittels if verschiedene Sachen darstellen.

Oder man nutzt im Formular GET als Methode und prüft ob parameter gesetzt wurden.

Enwickeln Sie EINE JSP mit der Sie Name, Nachname und GebDatum einer Person im Browser eingeben können, zum Client bezogen speichern und ausgeben, wenn die Daten bereits bekannt sind. Validieren Sie die Eingaben serverseitig. Geben Sie die Anzahl aller erfolgreich gespeicherten Datensätze, unabhängig vom Client, aus

Wie sendet man per Formular etwas an sich selbst=?

Z.B. indem man so ein Formular in einer JSP-Seite erstellt:


<form method="GET">
  <fieldset>
    <label>Name</label>
    <input type="text" name="name" value="Sammy" />
  </fieldset>
  <fieldset>
    <label>Homepage</label>
    <input type="text" name="url" value="http://linux.eu" />
  </fieldset>
  <fieldset>
    <label>Anfrage</label>
    <textarea name="anfrage" >Bitte mach meine Hausaufgaben, du darfst auch gerne in einem Forum Nachfragen, wenn du nicht weiter weisst, aber es ist echt dringend!!!</textarea>
  </fieldset>
  <input type="submit"/>
</form>

Drückt man dann auf Senden, werden die Formulardaten ausgelesen und an die gleiche Seite wieder zurückgesendet. Da kann man dann, bzw. muss man, Logik einbauen, die dafür sorgt, dass die gesendeten Daten ausgelesen und entsprechend verarbeitet werden.