Hallo zusammen,
ich stecke leider noch in den Anfängen was Java und JSPs angeht. Im Moment arbeite in an einem Projekt, wo ich eben dies brauche und hänge jetzt seit Tagen an einer Stelle fest: Ich möchte mit einem Servlet eine Datenbank auslesen (das funktioniert auch), die Ergebnisse dann aber nicht mit dem Servlet, sondern einer JSP darstellen.
Ich weiß, dass ich dazu die Daten mit einem request.setAttribute(...) übergebe und mit dem RequestDispatcher die JSP aufrufe, allerdings bekomme ich das einfach nicht umgesetzt. Ich glaub mir fehlt da einfach das Gesamtverständnis
Habe hier im Forum schon quer gelesen, aber leider bringt mich das gerade auch nicht viel weiter.
Hier erstmal der Code vom Servlet:
Bis jetzt hab ich eben die Ergebnisse der Datenbankabfrage durch das Servlet darstellen lassen. Wenn ich das jetzt an eine JSP übergeben will, brauche ich ja sowas in der Richtung:
Aber wie bekomm ich jezt die Ergebnisse vom ResultSet in das Ergebnisobjekt?
Wie gesagt, ich stell mich da gerade selten dämlich an und hoffe das mit einer von euch mal das Brett vom Kopf nehmen kann.
Schonmal Danke im Voraus!
ich stecke leider noch in den Anfängen was Java und JSPs angeht. Im Moment arbeite in an einem Projekt, wo ich eben dies brauche und hänge jetzt seit Tagen an einer Stelle fest: Ich möchte mit einem Servlet eine Datenbank auslesen (das funktioniert auch), die Ergebnisse dann aber nicht mit dem Servlet, sondern einer JSP darstellen.
Ich weiß, dass ich dazu die Daten mit einem request.setAttribute(...) übergebe und mit dem RequestDispatcher die JSP aufrufe, allerdings bekomme ich das einfach nicht umgesetzt. Ich glaub mir fehlt da einfach das Gesamtverständnis
Hier erstmal der Code vom Servlet:
Java:
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SQLServlet5 extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String username = "root";
String password = "";
String url = "jdbc:mysql://localhost:3306/test2?";
String query = "SELECT * FROM employee";
showTable(url, username, password, query, out);
out.println("</center></body><html>");
}
public void showTable(String url, String username, String password, String query, PrintWriter out) {
try {
//Load database driver if it's not already loaded
Class.forName("com.mysql.jdbc.Driver");
//Establish network connection to database
Connection connection = DriverManager.getConnection(url, username, password);
DatabaseMetaData dbMetaData = connection.getMetaData();
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(query);
out.println("<table border=1>");
ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
int columnCount = resultSetMetaData.getColumnCount();
out.println("<tr>");
//Column index starts at 1
for (int i = 1; i <= columnCount; i++) {
out.print("<th>" + resultSetMetaData.getColumnName(i));
}
out.println();
//Step through each row in the result set
while (resultSet.next()) {
out.println("<tr>");
for (int i = 1; i <= columnCount; i++) {
out.print("<td>" + resultSet.getString(i));
}
out.println();
}
out.println("</table>");
connection.close();
} catch (ClassNotFoundException cnfe) {
System.err.println("Error loading driver: " + cnfe);
} catch (SQLException sqle) {
System.err.println("Error loading connection: " + sqle);
} catch (Exception ex) {
System.err.println("Error with input: " + ex);
}
}
}
Bis jetzt hab ich eben die Ergebnisse der Datenbankabfrage durch das Servlet darstellen lassen. Wenn ich das jetzt an eine JSP übergeben will, brauche ich ja sowas in der Richtung:
Java:
request.setAttribute("meinErgebnis", ErgebnisObjekt);
RequestDispatcher rd = request.getRequestDispatcher("Ausgabe.jsp");
rd.forward(request,response);
Aber wie bekomm ich jezt die Ergebnisse vom ResultSet in das Ergebnisobjekt?
Wie gesagt, ich stell mich da gerade selten dämlich an und hoffe das mit einer von euch mal das Brett vom Kopf nehmen kann.
Schonmal Danke im Voraus!