Verständnisproblem; Kommunikation im Internet und zwischen Programmen

Hallo liebe leute,

ich habe schon einige Threads zu dem Thema eröffnet. Ich bin mittlerweile der Meinung, dass es schlauer ist, meine großen Baustellen in kleinere aufzuteilen.

Eine der ersten ist das Verständnis der Kommunikation im Internet.

Ich kenne die zugehörigen Protokolle wie IP, TCP, UDP etc…

Auch über den allgemeinen Aufbau und das Server-Socket, Client-Socket Prinzip. Zumindest meine ich das.

Ich programmiere seit 2 Jahren Java und weiss daher um Streams, Sockets u.ä. bescheid.

Jetzt kommt der Teil, den ich nicht kenne.

Ich möchte über eine Webseite mit einem JavaProgramm kommunizieren.

Um etwas präziser zu sein: Ich will via JavaScript Eingaben auf einer Webseite auswerten, ein JSON an mein Java Programm senden und wenn es gehen sollte, auch eine Bestätigung an die Webseite zurück senden.

(Client)JavaScript und AJAX |erstellen einen JSON POST Request->Daten annehmen/speichern|Apache(Server)| Daten zugreifbar machen-> Daten von Server holen | Java | POSTEN->Post request annehmen(Port)|Apache(Server) | weiterleiten ->GET REQUEST | JavaScript(Client).

Hier solls erstmal nicht um Code gehen, sondern um den allgemeinen Ablauf und was ich dafür brauche.

https://hc.apache.org/httpcomp…al/html/fundamentals.html

Ich habe bereits in vielen Foren gesucht und relativ viel Freizeit reingesteckt. Bisher kam nichts dabei rum. Ich schlussfolgere daraus, dass ich etwas nicht verstehe.

Hier ist ein grober Einblick in meinen Ablauf:

Aufbau eines Java HTTP Servers über Apache

Apache Server installieren

Java Programm mit dem Webserver verbinden.

Webseite auch über Apache laufen lassen

Wenn meine Seite Postet, postet sie als Client an den (Apache Webserver)

Ich speichere meinen JSON auf dem Webserver und kann ihn über einen Input Stream in Java erhalten.
Alternativ würde ich das Ganze auch über XAMP machen. Je nachdem was mir die Kenner hier raten :wink:
Aber eins nach dem anderen.

Das wäre meine Herangehensweise.

Insbesondere der Schritt, wenn ich Daten von JS an den Server schicken will. (AJAX).

Gibts da irgendein Tutorial?

Aber ist denn mein Java Programm schon ein Server? Kann ich das wie beschrieben machen?

Ne Anleitung mit Apache in Verbindung mit Java wäre extrem nice!

Bin gespannt und dankbar für jede Antwort. Gerne auch Kritik oder Verbesserungen.

LG J

Am einfachsten für dein Vorgaben wird ein Rest-Service sein:

Schau dir das mal.

Dann brauchst du keinen Umweg über einen Apache Webserver.

Hey Macinek!
Vielen Dank für die schnelle Antwort!
Das schaut tatsächlich vielversprechend aus!
Ich werde mich zunächst einlesen und etwas rumprobieren müssen.
Falls der Vorschlag zum Erfolg führt, werde ich das hier festhalten!
Danke!

Auf Spring würde ich verzichten, da eben das Gegenteil von einfach…
https://stackoverflow.com/questions/221442/how-do-you-create-a-rest-client-for-java dort werden viele Libraries und Wrapper genannt.

Sorry, falschen Link erwischt… https://stackoverflow.com/questions/3732109/simple-http-server-in-java-using-only-java-se-api

Spring (Boot) ist doch trivial - und vor allem einfach testbar. Ansonsten gibt es viele „einfache“ Frameworks: Kotor, Micronaut, Quarkus, …

Ich denke @anon2594669 hat es richtig zusammengefasst.

Die API only Lösung ist die denkbar schlechteste, die man für den Use-Case + Erfahrung nutzen sollte.

Also hier muss man erwähnen, dass besagter User auch auf objekt orienrtiere programmierung verzichtet, weil diese nur overhead ist und keine Vorteile bietet. Ich würde hier empfehlen das von mir geschilderte Tutorial durchzulesen und erneut konkret zu bewerten.

@jackcarver12 Schön, dass man hier weiterhelfen konnte. Wenn du Fragen dazu hast, dann kannst du dich gerne im Forum melden :wink: Ich denke du wirst da zu einer guten Lösung kommen.

Hey Leute,
zunächst schön, dass hier eine Diskussion entsteht. Lasst uns versuchen objektiv zu bleiben. Jeder hat eine andere herangehensweise und unterschiedliche Erfahrungen gemacht. Unabhängig davon, dass ich die Lösungsansätze als Anfänger nicht so beurteilen kann wie ihr als Fortgeschrittene, würde ich mich darüber freuen wenn hier alles sachlich bleibt. :wink:

Schon mal vielen Dank für die vielen Ideen!
Ich muss mir das in Ruhe ansehen. Das kann aber etwas dauern, da ich momentan in meinem Praktikum bin. Ich möchte das Projekt in jedem Fall fortführen und werde daher alle hier genannten Ansätze im Auge behalten.

Vielen Dank an alle Beteiligten
LG J

Also was man drum herum liest ist sehr interessant, aber ich verstehe den Code nicht. Daher lese ich momentan den Beitrag vom Openbook Rheinwerk zum Thema Netzwerkprogrammierung und hoffe danach etwas mehr zu dem Thema sagen zu können.
Danke!
J

Insbesondere die weiterverarbeitung von erhaltenen Daten kann ich mir leider noch nicht ganz herleiten.
Es stehen für mich noch viele grundsätzliche Fragen im Raum.
Posten über JavaScript läuft mit AJAX.
Kann ich mit AJAX JSON posten und wenn ja wie nehme ich das mit Java an?

Ich melde mich wieder und hoffe auf weitere Tipps/Erklärungen
LG J

Genau…

Dasfür brauchst du ein Endpoint… Und das stellt das Tutorial dar, das ich dir oben verlinkt habe. Ein Wissen über detaillierte HTTP Vorgänge sind ihmo nicht notwendig. Da würde ich versuchen einfach das Tutorial zu copy pasten.

Ich würde damit erstmal beginnen und konkrete Fragen stellen, weil momentan streuen wir sehr weit.

ja, dafür ist das gedacht

das kommt auf das Framework/die Lib an; du nimmst es an, verarbeitest es, und sendest eine Antwort zurück.

Hallo,
kurzes Update:

habe diese Seite gefunden.
Hier wird es eigl relativ einfach erklärt.
Damit sollte es nun funktionieren.
Ich werde noch etwas rumexperimentieren…
Falls jemand dazu noch etwas weiss, oder den Code bereits kennt…
Wie bereits gesagt ich freue mich über jeden Beitrag.
LG J