Servlet Servlet das richtige?

ErikS

Mitglied
Hallo,
ich kann ein wenig(klitzeklein ;-) ) Java programmieren und wollte mich mal weg von den .jar Programmen auf der Festplatte bewegen und ins Internet+ Datenbank rein.
Also erstmals normal in Java ein Programm erstellt welches mit einer Datenbank kommunizieren kann.
Recht einfach: Es gibt einen Namen und eine zufällige Zeichenfolge welche zusammen mit einer Positionsnummer an ein PHP Skript übergeben wird. Das Skript schreibt die werte dann in die DB. Mann kann nun im Java Programm über die Zeichenfolge z.B. die Positionsnummer rausbekommen (simples php)
Zusätzlich wird die aktuelle Zeichenfolge als QR Code dargestellt (Eingebundenes Externes JAR File)

So...Nun würde ich das ganze gerne komplett in eine Webseite packen.
Ganz wichtig ist mir dabei, dass es in jedem aktuellen Browser (Auch Mobilgeräte) läuft ohne dass man irgendwas haben (JVM) oder installieren muss. Also fallen Applets ja weg.

Bevor ich mit mit Servlet auseinander setze und dabei kann es nicht funktionieren ein paar Fragen:
Servlets benötigen nur auf dem Server Java (Tomcat o. ä.) und benötigen von Clientseite nix?
Eine GUI macht man mit HTML/CSS und nicht mit Java Swing?
Kann man komplett Java mit externen JARs verwenden? (Das QR erzeugen benötigt z.B. ein Graphics 2D Element)
Wenn ich eh den kompletten Quellcode quasi neu machen muss, kann ich auch gleich was anderes nehmen.


Und die wichtigste Frage: Würdet ihr das überhaupt mit Servlets machen oder einen komplett anderen Weg gehen? Andere Sprache etc?

Ganz grob soll es so aussehen, da soll später noch ein Suchen Feld rein und evtl anderes Zeug was ich jetzt noch nicht weiß :)

 

stg

Top Contributor
Servlets benötigen nur auf dem Server Java (Tomcat o. ä.) und benötigen von Clientseite nix?
Ja, das ist richtig.
Eine GUI macht man mit HTML/CSS und nicht mit Java Swing?
Ja.
Kann man komplett Java mit externen JARs verwenden? (Das QR erzeugen benötigt z.B. ein Graphics 2D Element)
Ja.

Und die wichtigste Frage: Würdet ihr das überhaupt mit Servlets machen oder einen komplett anderen Weg gehen? Andere Sprache etc?

Nein, würde ich vermutlich nicht. Ich würde einfach die bestehende php Anwendung erweitern.
 

Flown

Administrator
Mitarbeiter
Also von der JavaEE Seite her hast du mehrere Möglichkeiten: Vom Standard her gibt es Servlet, JSP, JSF (wobei Letzteres der IST-Standard ist). Kaum zu erwähnen, dass auf diesen Frameworks andere mächtige Frameworks aufbauen (Bsp: Spring).
Grundsätzlich brauchst du bei allen oben genannten Technologien einen Application-Server (Glassfish, Wildfly, etc.... HIER eine Auflistung).

Backend wird mit Java und JavaEE Elementen programmiert, wie du schon richtig erkannt hast. Kann mit normalen JavaEE passieren oder eben Web-Frameworks wie Spring.

Zum Frontend gibt es jetzt zig Variationen. Um im Java EE Standard zu bleiben mach es mit JSF/JSP (JSF ist bevorzugt). Sonst gehts auch mit Spring/Vaadin/Angular.JS/php/... (solltest einmal auf Google suche gehen, was es nicht alles gibt).
 

stg

Top Contributor
Für Servlets reicht ein einfacher Web-Container.

Und ein Servlet, welches 3 Form-Parameter entgegennimmt, ist auch in 5 Minuten fertig. Die JavaEE Application-Server-Keule zu schwingen ist da total "overpowered".

Mal ganz abgesehen davon findet man unter Garantie auch php Scripts zum erzeugen von QR Codes. Warum also nicht auf Bestehendes zurückgreifen und entsprechend ergänzen, sondern stattdessen eine Ressourcenhungrige Java-Anwendung für so einen Kleinkram hochziehen?
 

Flown

Administrator
Mitarbeiter
@stg Aye, natürlich reicht für Servlets ein einfacher Web-Container.
Ich hatte die Frage ein wenig missinterpretiert und dachte alles sollte in einem JEE Umfeld gemacht werden.
 

stg

Top Contributor
Da die Layer vermischt sind, leuchtet eine rote Lampe in meinem Kopf und schrillt die Sirene.

Dass dem so ist, ist für mich erst einmal eine haltlose Unterstellung. Woher nimmst du diese Info? Ich sehe hier nix, was darauf hindeutet. (Außer der Tatsache, dass ein Anfänger die Frage stellt und Anfänger solche Fehler fast immer machen ;))

Die Datenbank-Anbindung über das php Script gibt es ja außerdem schon, er will primär wohl nur Java benutzen, um den QR Code zu erzeugen.

JSF ist super bei komplexen Forms-Anwendungen mit nem Haufen an Validierungen, Templating, asynchronen Abläufen undundund ... aber bei nem einfachen Formular mit drei Eingabefeldern? Das ist mit HTML/JS auch in 5 Minuten fertig. Welchen nennenswerten Vorteil ziehst du da aus der Verwendung von JSF?
 

AndiE

Top Contributor
Ich hatte mich auf dem Link bezogen, den ich geschickt hatte. Desweiteren habe ich gedacht, dass der TO die Datenbankanbindung auch mit dem Servlet machen wollte. Bei der Nutzung von JSF kann ich z.B. mit xhtml eine datatable bauen. Ich finde die codeweise Abtrennung der Darstellung(XHTML) vom Code(Java) wichtig. Dass im Codebeispiel. das ich gegeben habe, von der Datenbankanbindung bis zur Darstellung alles in einer Methode ist, finde ich persönlich ... gewöhnungsbedürftig. Den "Anfänger" lasse ich mal so im Raum stehen :).
 

stg

Top Contributor
Ich finde die codeweise Abtrennung der Darstellung(XHTML) vom Code(Java) wichtig.
Ja klar, das ist es ohne Frage. Aber das hat so ziemlich gar nix mit den verwendeten Technologien zu tun.
Die Darstellungs-Schicht kannst du übrigens auch in Java schreiben, da spricht ersteinmal nichts gegen. (siehe zB Vaadin)
Und bei JSF wird ja letzten Endes natürlich auch von nem Servlet mit Hilfe von stinknormalem Java Code der HTML Output generiert.

Dass im Codebeispiel. das ich gegeben habe, von der Datenbankanbindung bis zur Darstellung alles in einer Methode ist, finde ich persönlich ... gewöhnungsbedürftig.
Der Code in dem Beispiel ist auch großer Mist. Aber das Code-Beispiel hast DU ja hier ins Spiel gebracht. :confused:

Bei der Nutzung von JSF kann ich z.B. mit xhtml eine datatable bauen.
Kann ich mit HTML+JS auch...

Ich bin ja selbst großer Fan von Java EE, aber im genannten Fall (insbesondere, wenn man berücksichtigt, dass vieles bereits in einer bestehenden php Anwendung gelöst ist) ist das doch einfach total überdimensioniert. Ich fahr ja auch nicht mit nem 40-Tonner Brötchen kaufen.
 

stg

Top Contributor
War das jetzt ein verzweifeltes "Der Klügere gibt nach", geschuldet der Tatsache, dass mir gerade langweilig ist und ich einfach nicht die Klappen halten will? :)

Ich hoffe einfach mal, dass mein Anliegen nicht allzu falsch rüberkam. Mein Mentor sagte mir mal "Choose the right tool for the job", als ich ihn mit Fragen zu Problemen gelöchert habe, die ich mir durch die falsche Wahl der Technologien selbst geschaffen habe.

Ach ja, um das ganze noch ein wenig weiter breitzutreten:
Ich hab im CodeReview schon mehr als einmal gesehen, dass in einer getter-Methode, die eine JSF datatable füttert, die Daten erst einmal aufbereitet werden. Sogar auch, dass dort Daten aus der Datenbank geholt werden. Wenn ich so ein Beispiel posten würde, dann kämst du vermutlich auch nicht auf die Idee zu sagen, dass JSF doof ist, weil man damit keine saubere Schichten-Trennung vornimmt. Wenn der Handwerker besoffen ist, dann kann das Material noch so gut sein...

Ganz allgemein: Ja, JSF ist toll. Aber der TE fängt ja gerade erst an mit der Web-Programmierung in Java. Da muss man dann vielleicht nicht direkt mit den HighLevel APIs anfangen. Ich bin grundsätzlich eigentlich immer ein Freund davon, dass man die LowLevel APIs wenigstens grundsätzlich vom Prinzip her verstanden haben sollte.

Und gerade bei kleineren Anwendungen ist weniger oft auch mehr.
Für die Umsetzung im konkreten Fall hier würde ich eine xhtml + BackingBean für die UI haben. Ohne weitere Frameworks wie z.B. PrimeFaces wird es schon schwierig mit gestreamten Content (das QR-Bild) Alternativ könnte ich natürlich auch das Bild generieren, auf der Platte speichern und dann von da aus auslesen, aber das ist auch wieder unschön. Weiter muss ich mir einen Service aufsetzen (z.B. mittels eine Stateless EJB), welche in geeigneter Weise mit der bestehenden php Anwendung kommuniziert, auf Fehler reagiert usw.
Auf der anderen Seite kann ich aus der bestehenden php Anwendung heraus aber einen ganzen simplen Request an ein Servlet schicken, welches mir den QR Code generiert und dann wie gewünscht den Response weiterverarbeiten. Oder ich verzichte hier ganz auf Java und suche mir eine php Lib, die das für mich macht. Oder ich erstelle den QR Code sogar im Client mit JavaScript.
Die einzigen plausiblen Gründe hier auf JSF zu setzen wären für mich: Entweder man ist im Umgang mit JSF und Co so geübt (und mit den anderen Technologien nicht), dass man deutlich schneller eine saubere Lösung schreiben kann. Oder man macht das einfach aus Jux und Dollerei, um zu lernen. Beides ist natürlich total legitim.

Jetzt lass ich dich und die anderen aber auch mit meinem Geschwafel in Ruhe und fahr nach Hause. Feierabend für heute :)
 

ErikS

Mitglied
Danke für eure Beiträge. "Anfänger" kann man stehen lassen. Ich habe im Studium ein paar Semester Java gelernt. Da dies bisher meine einzige richtige (an)gelernte Sprache ist, habe ich halt erstmal damit was gemacht.
Das was ich jetzt vorhabe soll später auch von anderen Personen genutzt werden über das Internet, aber nur im kleinen privaten Kreis.
Geplant ist in Zukunft auch einen Android App (Mit Java :D ) welche dann den QR Code einließt und somit die Zeichenkette hat und dann damit die Position suchen kann.
Schon deswegen habe ich die (momentan sehr simplen) php skripte zum einfügen/löschen/suchen in der DB.
Mal schauen wie das mit HTML/CSS klappt und wie das zusammenspiel mit PHP funktioniert.
So wie ich das aus den Antworten rausgelesen habe, wird das ja auch empfohlen.
Bootstrap soll als CSS ja ganz nett sein z.B.
Aber ich komme eh erst in einer Woche dazu mich intensiv damit zu befassen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Jakarta Servlet API 5.0 Allgemeines EE 1
pkm Frage wegen AJAX-Zugriff auf ein Servlet Allgemeines EE 1
Dimax Servlet Servlet Kommunikation Allgemeines EE 18
K Unterschied zwischen JSP & Servlet gegenüber REST mittels JAX-RS Allgemeines EE 1
Dimax Servlet läuft in Eclipse, aber nicht im Browser Allgemeines EE 74
M URL Servlet Request getParameter Allgemeines EE 2
M Servlet Methoden Aufruf im Servlet Allgemeines EE 10
J 404 Not found (Servlet) Allgemeines EE 1
J Asynchrones Servlet löst NullPointerException aus Allgemeines EE 5
B HTTP-Header-Inspektor-Servlet Allgemeines EE 1
N JSP Servlet mit JSP ansprechen Allgemeines EE 2
F Mehrere Bilder aus MySQL DB via Servlet darstellen. Allgemeines EE 1
J FTP und Servlet Allgemeines EE 11
H Post an Servlet Allgemeines EE 2
A Binärdatei vom Servlet erzeugen lassen Allgemeines EE 3
S Servlet Authentication Filter Allgemeines EE 0
S LDAP JAAS oder Servlet Allgemeines EE 0
G Problem: Servlet in JSP einbinden mit <jsp:include> Allgemeines EE 3
F eigene Anwendung per Servlet Container starten Allgemeines EE 9
F Servlet Daten im Speicher ablegen Allgemeines EE 3
L Servlet ClassNotFoundException Servlet Allgemeines EE 3
G Allgemeine Frage zu Authentifizierung mittels Servlet API Allgemeines EE 2
J Servlet "package does not exist" Allgemeines EE 5
K Servlet-Mapping Allgemeines EE 9
0 Servlet mit ArrayList Allgemeines EE 3
E Servlet unter mehreren Adressen Allgemeines EE 16
S Pfad-Zugriff über Servlet-init() Allgemeines EE 2
E Servlet Wie kann ich ohne Hilfe von Eclipse in JBoss mein servlet aufrufen Allgemeines EE 2
S Servlet.service() threw exception Allgemeines EE 4
A Servlet erkennt request Objekt nicht Allgemeines EE 8
G Direkter Zugriff auf Servlet- doPost Allgemeines EE 15
G Servlet doGet, doPost Allgemeines EE 3
A Kodierungsproblem bei Parameterübergabe von Browser an Servlet (GET) Allgemeines EE 2
Antoras servlet-mapping auf dynamische URLs Allgemeines EE 17
0 Problem mit librarys javax.servlet.http.HttpServletRequest cannot be resolved Allgemeines EE 1
MQue Ajax - Servlet Allgemeines EE 2
MQue Servlet Allgemeines EE 9
S [Design] Dynamischer EJB Aufruf von Servlet Allgemeines EE 3
S Servlet auf JBoss 5? Allgemeines EE 11
B HttpSession bekommen wenn nicht in Servlet Allgemeines EE 8
MQue Servlet / Button Allgemeines EE 5
S In Eclipse werden die "Servlet-Klassen" nicht gefu Allgemeines EE 2
U javax.faces und javax.servlet cannot be resolved Allgemeines EE 2
W Potentielles Memory Leak bei Servlet Allgemeines EE 6
B unterschied servlet und bean Allgemeines EE 2
Escorter Servlet .sar und jede Menge .jar Archive Allgemeines EE 2
N Servlet und JSF (URL-Rewriting)? Allgemeines EE 3
A jsf: Servlet aufrufen, wie geht das? web.xml Fehler? Allgemeines EE 13
N Servlet zyklisch aktualisieren Allgemeines EE 2
zilti Verbindung Applet <-> Servlet Allgemeines EE 5
ARadauer Servlet Bild Rückgabe Allgemeines EE 2
I Über Formular Daten zu Servlet Allgemeines EE 36
H Servlet - Zwischenmeldung anzeigen bei längerer Berechnung Allgemeines EE 2
G Ordner mit Umlauten einlesen - Servlet Allgemeines EE 3
A web.xml für Servlet in Tomcat 5.5 erstellen Allgemeines EE 2
M Zwei Buttons in einem Servlet Allgemeines EE 2
M Servlet lässt sich nicht aufrufen Allgemeines EE 6
A web.xml für Servlet in Tomcat erstellen Allgemeines EE 6
B Servlet Allgemeines EE 3
G EJB - EJB wird nicht ins Servlet geladen Allgemeines EE 3
K load-on-startup -> in der Servlet Klasse Allgemeines EE 6
G Objekt an Servlet übergeben - oder Objekt global definieren? Allgemeines EE 4
W Was bei Servlet-Entwicklung alles beachten? Allgemeines EE 8
R Zugriff auf Filter Servlet Allgemeines EE 10
I JBOSS Jsp Files Pfad im Servlet? Allgemeines EE 4
N Servlet-Request abbrechen? Allgemeines EE 3
D Java Servlet mit Radio Buttons Allgemeines EE 2
G Servlet debugging Allgemeines EE 8
N Thread von Servlet aus starten Allgemeines EE 16
N JSP: Collection im Servlet überwachen (mit AJAX)? Allgemeines EE 5
J Socket daten darstellen per jsp,servlet Allgemeines EE 2
W servlet über https Allgemeines EE 2
L Servlet kann Funktion nicht aufrufen Allgemeines EE 3
B Parameterübergane von Servlet an JSP funktioniert nicht ? Allgemeines EE 2
M Aus einem Servlet auf ein anderes zugreifen ? Allgemeines EE 2
G Servlet Serializable Allgemeines EE 2
B Servlet-Api.jar auf JBoss? (Migration von Tomcat zu JBoss) Allgemeines EE 4
H Servlet - Importieren von Code Allgemeines EE 2
P Java Servlet - Umgang mit Verlinkungen Allgemeines EE 7
M Wert aus Servlet an normale Klasse übergeben Allgemeines EE 2
E Servlet soll JFRame öffnen. Jframe.setvisible schlägtfehl Allgemeines EE 2
M servlet --> jsp - problem beim umstrukturieren Allgemeines EE 5
D Servlet Problem über Server Allgemeines EE 26
K Servlet per Formular aufrufen Allgemeines EE 8
L sessions mit servlet oder jsp ? Allgemeines EE 9
B JSF - Servlet mit Parametern über einen Link öffnen Allgemeines EE 3
D Binärdaten im Servlet entgegen nehmen, aber wie? Allgemeines EE 5
T Servlet-Instanzen und ServletContext Allgemeines EE 2
L speichern von daten mittels servlet in xml Allgemeines EE 8
N Collection überwachen (Servlet + AJAX) Allgemeines EE 3
N Liste mit Checkboxen an Servlet übergeben? Allgemeines EE 3
T Wie Datenbank und Servlet koppeln? Allgemeines EE 3
G Ladeseite anzeigen lassen während das Servlet noch arbeitet? Allgemeines EE 6
P Tomcat Servlet POST Daten als Array Allgemeines EE 2
P PDF per Servlet übertragen, danach keinen Inhalt mehr Allgemeines EE 12
N JSP kann Servlet nicht aufrufen! :-( Allgemeines EE 2
J Servlet Parameter aus web.xml übergeben, wie zugreifen? Allgemeines EE 2
L servlet.jar ? Allgemeines EE 2
K Servlet: Respone.redirect mit POST-Parametern Allgemeines EE 5
S kann eigenes object nicht von applet zu servlet senden Allgemeines EE 3

Ähnliche Java Themen

Neue Themen


Oben