Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Servlet's schreiben?

Empfohlene Antworten

Veröffentlicht

Hallo,

ich habe mal wieder ein kleines Problem mit Java.

Jaraz hat mir vor einiger Zeit geraten eine Datenbankabfrage mit Servlets zu realisieren nun stehe ich erneut vor ein Problem.

Ich habe ein Servlet geschrieben (glaube ich jedenfalls) doch als was speicher ich das File?

Als *.java?

Und wie bekomme ich die *.class Datei?

Der Compiller JpadPro gibt mir mir folgende Fehlermeldungen aus:

(Könnt Ihr mir einen Tip geben welchen Compiller man evtl. noch verwenden könnte?)

Compiling C:\JSDK2.0\Stabil.java

C:\JSDK2.0\Stabil.java:37: ')' expected

rsgetInt ("ScVorw") + rs.getInt ("ScRuf");

^

C:\JSDK2.0\Stabil.java:38: ')' expected

out.println("</Li>"

^

C:\JSDK2.0\Stabil.java:1: package javax.servlet does not exist

import javax.servlet.*;

^

C:\JSDK2.0\Stabil.java:2: package javax.servlet.http does not exist

import javax.servlet.http.*;

^

C:\JSDK2.0\Stabil.java:7: cannot resolve symbol

symbol : class HttpServlet

location: class Stabil

public class Stabil extends HttpServlet

^

C:\JSDK2.0\Stabil.java:9: cannot resolve symbol

symbol : class HttpServletRequest

location: class Stabil

public void doGet (HttpServletRequest request, HttpServletResponse response)

^

C:\JSDK2.0\Stabil.java:9: cannot resolve symbol

symbol : class HttpServletResponse

location: class Stabil

public void doGet (HttpServletRequest request, HttpServletResponse response)

^

C:\JSDK2.0\Stabil.java:10: cannot resolve symbol

symbol : class ServletException

location: class Stabil

throws ServletException, IOException

^

C:\JSDK2.0\Stabil.java:37: cannot resolve symbol

symbol : method rsgetInt (java.lang.String)

location: class Stabil

rsgetInt ("ScVorw") + rs.getInt ("ScRuf");

^

C:\JSDK2.0\Stabil.java:45: cannot resolve symbol

symbol : class SQLExeption

location: class Stabil

catch (SQLExeption e)

^

10 errors

Und so sieht der Quellcode aus:

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

import java.sql.*;

import java.text.*;

public class Stabil extends HttpServlet

{

public void doGet (HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException

{

Connection conn = null;

Statement stmt = null;

ResultSet rs = null;

response.setContentType("text/html");

PrintWriter out = response.getWriter();

try

{

Class.forName("jdbc:odbc:schulen");

String url = "jdbc:odbc:schulen";

conn = DriverManager.getConnection( url, "User", "User" );

stmt = conn.createStatement();

String query = "select ScSNR, SCNam1, ScVorw, ScRuf" +

"from schule" +

"where ScNr = '" + request.getParameter("schulnummer") + "'";

rs= stmt.executeQuery(query);

out.println("<Html>");

out.println("<Head> <Title> IZN-Stabil-Support-Formular </Title> </Head>");

out.println("<Body>");

out.println("<H1> Schuldaten </H1>");

out.println("<Ul>");

while (rs.next())

out.println("<Li>" + rs.getInt ("ScSNR") +

rs.getString ("ScName1") +

rsgetInt ("ScVorw") + rs.getInt ("ScRuf");

out.println("</Li>"

out.println("</Body> </Html>");

}

catch (ClassNotFoundException e)

{

out.println("Datenbanktreiber nicht gefunden:"+ e.getMessage());

}

catch (SQLExeption e)

{

out.println("SQLException: " + e.getMessage());

}

finally

{

try

{

if (conn !=null) conn.close();

} catch (SQLException ignorieren) {}

}

}

}

Vielen Dank im Voraus

Festus

Original geschrieben von Festus

Als *.java?

Ja

Original geschrieben von Festus

Und wie bekomme ich die *.class Datei?

indem du die java Dateien compilierst. ;)

Original geschrieben von Festus

Der Compiller JpadPro gibt mir mir folgende Fehlermeldungen aus:

Das ist eine IDE und kein Compiler. ;)

Einfach losprogrammieren, bringt ziemlich wenig, wenn man sich nicht mal mit den Basics beschäftigt.

Siehe erst einmal zu, dass du ein Hello World im Browser hinbekommst.


import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;


public class HelloWorld extends HttpServlet {


  public void doGet(HttpServletRequest req, HttpServletResponse res)

                               throws ServletException, IOException {


    res.setContentType("text/html");

    PrintWriter out = res.getWriter();


    out.println("<HTML>");

    out.println("<HEAD><TITLE>Hello World</TITLE></HEAD>");

    out.println("<BODY>");

    out.println("<BIG>Hello World</BIG>");

    out.println("</BODY></HTML>");

  }


Auf alle Fälle brauchst du einen Servlet Container.

Die Referenzimplementierung Tomcat findest du unter http://jakarta.apache.org.

Dabei ist eine gute Doku und jede Menge Examples die du dir anschauen solltest. Servlet Unterstützung gibt es für verschiedenste IDEs. Ich nutze Eclipse www.eclipse.org , was aber nicht gerade einfach zu benutzen ist, da du dort erstmal Plugins nachinstallieren musst. Ob JpadPro das debuggen von Servlets unterstützt, weiss ich nicht.

Relativ einfach soll wohl IDEA sein. Gibt es unter http://www.intellij.com/idea/.

Ebenso würde ich dir als Einstiegslektüre zu

Java Servlet-Programmierung von O'Reilly raten.

http://www.oreilly.de/catalog/jservlet2ger/

Weitere Allgemeine Infos zu Servlets gibt es unter: http://www.servlets.com/docs/index.html

Gruß Jaraz

Danke erstmal!

TomCat und Apache habe ich schon auf einen seperaten Rechner installiert und es läuft soweit.

Na dann werde ich erst mal schauen ob ich das „Hello World“ Servlet zum laufen bekomme.

Werde wohl einen anderen IDEA ;) verwenden.

Ist TomCat eigentlich ein eigener Webserver oder setzt er den Apache oder IIS voraus?

Original geschrieben von Festus

Ist TomCat eigentlich ein eigener Webserver oder setzt er den Apache oder IIS voraus?

Tomcat kann wenn man ihn dafür konfiguriert, beides. In Produktionsumgebungen wird aber weiterhin Apache für statischen Content beutzt, da das nicht gerade Tomcats stärke ist.

Näheres hier: http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/jk/aphowto.html

Gruß Jaraz

  • 7 Monate später...

Um in Eclipse Plugins zu installieren muss man meistens eine Datei entpacken. Der darin enthalten Ordner hat dann einen Namen, der eine Paket Struktur darstellt

Bsp

org.eclipse.ant.core_2.11

Diesen Ordner muss man dann in den Plugins Ordner von Eclipse kopieren und dann Eclipse neu starten.

Bei den meisten Plugins gibt es allerdings auch eine Readme die erklärt wie man das Plugin installiert und wie man es danach startet

Danke, habe es geschafft. Hier nochmal für alle:

1. unter http://jakarta.apache.org/site/binindex.cgi Tomcat runterladen und installieren (egal wohin, Port: 8080)

2. unter http://www.sysdeo.com/eclipse/tomcatPlugin.html

TomcatPlugin für Eclipse herunterladen und ins Plugin-Verzeichnis von Eclipse kopieren/entpacken

3. Eclipse starten

4. Unter Windows-Customize Perspective wählen und bei "Other" Häkchen bei Tomcat -> dadurch erscheinen die 3 Buttons (T starten, T beenden, T neustarten)

5. Windows-Preferences-Tomcat dort den Ort einstellen (da, wohin installiert); bei den JVM Einstellungen entsprechende Einstellungen eingeben (Admin/Entwickler fragen)

6. Neues Tomcat-Projekt anlegen, Projektname beliebig, Häkchen bei content auf 'use default' belassen

7. alle benötigten Jars ins Verz lib kopieren

8. alle Sourcen nach src kopieren

9. Rechtsklick auf Projektname und Refresh

Ich musste noch eine web.xml erzeugen und dort einiges reinschreiben, aber das muss man selber sehen...

Gruss an alle die dit hilft

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.