Problem mit Java Servlet und Tomcat 7 (in Eclipse Helios)

hä? meinst du jetzt im code?
 
Ja, in der uri
 
moin!

ich hab hier folgendes snippet:

Code:
protected void goGetIP(HttpServletRequest req, HttpServletResponse resp) throws IOException{
		try{
			String ipaddr = req.getRemoteAddr();
			PrintWriter out = resp.getWriter();
			out.println("IP-Address: " + ipaddr);
		} catch (IOException e) {
			e.getStackTrace();
			System.out.println("I/O-Error! Couldn't retrieve IP-Address");
		}
	}

könnte man so die IP auslesen?

(ja, error handling is nicht geschickt gelöst...)
 
ja, aber probier es doch einfach ;-)

siehe http://download.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html
und dann unter
"Methods inherited from interface javax.servlet.ServletRequest"

Allerdings finde ich die Methode insgesamt dubios, du erzeugst da einen eigenen Ausgabestrom, das wird dir an anderer Stelle Probleme bereiten. Ich würde nur die IP ermitteln und zurückgeben (also nicht void, sondern String) und die Ausgabe dann im doGet oder wie auch immer du das machst im Servlet ausgeben.
 
Zuletzt bearbeitet:
Glückwunsch!
 
aktueller stand...

http://img233.imageshack.us/i/bild4r.png/


jetzt hab ich ein problem:

statt "Antwort :" sollen da jetzt n Antworten aus einer datenbank extrahiert werden und hinter die radio buttons geschrieben werden...(n = beliebige anzahl antworten...)

wie fang ich das am besten an?

DB steht, is auch schon mit werten gefüllt.
um SQL Injections zu vermeiden, will ich (weil gesünder) prepared statements verwenden...

der zugriff soll vom servlet nur aufgerufen werden, der zugriff selbst soll über eine schnittstelle erfolgen.

thx greez

Naph
 
der zugriff soll vom servlet nur aufgerufen werden, der zugriff selbst soll über eine schnittstelle erfolgen.
Sorry, versteh ich nicht. Möchtest du eine Bean schreiben, die die Daten zurückliefert?
Ich kenne ja das Konzept nicht, das hinter deinen Übungen steht. Momentan etwas "hipper" als reine Servletprogrammierung wäre der Einsatz von JSF. Einen guten Überblick gibt meiner Meinung nach: http://jsfatwork.irian.at/semistatic/introduction.html

Das wird dann aber schon etwas größer insgesamt, dafür wird aber schön erklärt, wie man die Komponenten verteilt.

Zu deiner SQL Frage: ich würde eine "datasource" in der WebApp anlegen, damit der Tomcat die Verbindungen poolt. Und dann kannst du im Servlet oder in der Bean von der datasource die Verbindung holen, das PreparedStatement aufrufen und die Daten auslesen. Im Grunde geht das so:
http://www.java.happycodings.com/Java_Servlets/code2.html
Schöner ist natürlich, wenn du in einer Bean eine Liste mit Objekten erzeugst, die du an das Servlet zurückgibst und erst dort (oder in einer JSP Seite oder bei JSF erst in der Definition der Ausgabe in xhtml ) den auszugebenden Text zusammenbaust.
 
Zuletzt bearbeitet:
ich würde JSF bevorzugen, aber der prof sagt servlet...(zumal das ganze keine übung, sondern eine prüfungsleistung ist...)

wenn's hilft, kann ich dir ja mal die aufgabenstellung zuschicken...

kurz zum projekt:

wir sollen ein Audience Response System mit hilfe eines serlvet und einer MySQL datenbank umsetzen. der prof hat die möglichkeit eine Abstimmung (beispiel "Wer wird Millionär?") zu erstellen
dabei sollen die kanäle Twitter, Email, SMS und WebSeite verwendet werden können.

in die datenbank fließt dann mithilfe eines twitter ID tags, der handynummer, der IP und/oder der emailadresse die abgegebene antwort (wird als string ausgelesen). diese soll dann 60 sekunden nach ende der abstimmung das endergebnis ausspucken..

eine tabelle in form von "Antwort A : 10 Stimmen, Antwort B: 20 Stimmen, etc..."


(btw: wenn mein prof das hier mitkriegt, grillt der mich :D)


mein problem is jetzt, daß ich nicht weiß, wie ich auf die datenbank zugreife. sowohl SELECT als auch INSERT werden von der weboberfläche benutzt, weil die antwort von der homepage in die datenbank eingefügt werden, damit die abstimmung vollständig wird. SMS, TWITTER und EMAIL sowie die ProfOberfläche stehen so gut wie...
 
Ich wollte nur wissen, ob es darum geht, ein paar Fingerübungen mit Servlets zu schreiben oder ob da hinterher eine richtige Anwendung rauskommen soll...
Schau dir mal die Einleitung von dem irian Link oben an, ich denke da findet du genug Futter für eine Verteilung der Komponenten, das man auch ohne JSF verwenden kann.
Und für die konkrete Umsetzung der Datenbankanbindung hast du ja eigentlich genug Hinweise oben, Stichwort datasource.
Und bei Tante G gibt es ja endlos viele Treffer für Fragen wie "JDBC insert example" ..
 
ok...dachte es hilft zu wissen, an was ich grad sitze...aber derzeit hab ich das problem, daß ich den jdbc treiber nicht geladen krieg, weil die klasse nicht gefunden wird.

dabei hab ich im profile das stehen:

Code:
#
# JAVA_HOME
#
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home
export CLASSPATH=/Users/naphaneal/fh_uebungen/mysql-connector-java-5.1.16/mysql-connector-java-5.1.16-bin.jar

und die bin.jar in den libaries hinzugefügt...

fehlermeldung:

Error! Class not found!
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

einer ne idee, wie was ändern muß?
 
Die Klasse muß entweder in das Lib-Verzeichnis Deines Tomcat ( provided by webserver) oder in das Lib-Verzeichnis Deiner Applikation und dann auch mit in die WAR-Datei gepackt werden!
 
hmm...is im lib-verzeichnis der app...steht in der .war...aber immernoch "Class not found"...
 
wenn ich bei eclipse in der konfiguration zum build path/libraries nachsehe, steht da "source attachment: none"

was hat das für eine bedeutung? muß ich da jetzt erst noch was anfügen?
 
Du mußt die Lib mit in die War-Datei packen beim erstellen des WAR-Archives. Das ist z.B. etwas was mit automatisch generierten WARs nicht geht!

also sowas in der Art:

<!-- lib in den Web-Container kopieren -->
<copy todir="${web.lib}">
<fileset dir="${lib.dir}">
<include name="**/*.jar"/>
</fileset>
</copy>
 
Zuletzt bearbeitet:
netbeans macht das ;-)
 
netbeans macht das ;-)

ja das schrieb ich weiter oben auch schon. Wenn er das haben mag, soll er Netbeans nehmen, da geht es mit registrierten und brav zum Projekt hinzugefügten Libraries :jaja:

Für mich war es aber zum lernen besser zu wissen was da alles von wo nach wo mußte. Diese Automatismen sind toll für eine schnelle Lernbelohnung, der Fußweg ist aber der lehrreichere meine ich.
 
ich würde den fußweg nehmen, aber im moment bin ich froh, wenn's überhaupt erstmal läuft...
 
wegus, du hast vorhin gesagt, in den Lib-ordner vom tomcat...

angenommen der pfad sei /tomcat/lib

einfach da rein kopieren? (anderen lib ordner seh ich nicht...)

sorry, aber ich bin grad ziemlich gefrustet...
 
irgendwie is der monat verhext...

jetzt hab ich das hier...

Code:
Error! SQL Exception!
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. and
 08S01

heißt das nun, der treiber geht, aber das SQL statement schießt quer?
 
Zurück
Oben Unten