Hallo Community,
ein frohes und gesundes Jahr wünsche ich euch allen!
Ich habe folgendes vor:
Über den Webbrowser wird eine JSP-Datei aufgerufen die eine Karte zeigt. Wird in die Karte geklickt so startet ein Java-Servlet, welches die Koordinaten übergeben bekommt und diese auch wieder zurückgibt und in Inputfelder schreibt. Das Funktioniert auch so wie es soll (ich weiss man könnte sie direkt über Javascript einfach in die Felder schreiben, ist aber nicht gewollt).
Im zweiten Schritt habe ich eine Java-Klasse geschrieben in der eine Verbindung zur Datenbank aufgebaut wird , eine Abfrage gestartet wird und die DB wieder geschlossen wird.(FUnktioniert mit einer statischen Abfrage traumhaft)
Nun möchte ich gerne diese Abfrage über das Servlet ansprechen und ihr eine spezielle Abfrage übergeben. Das Ergebnis soll dann an Stelle der Koordinaten auf der der *.jsp zu sehen sein.
Leider bekomme ich es nicht hin die Datenbankabfrage in das Servlet zu integrieren und die Abfrage somit zu übermitteln.
Servlet:
Datenbankabfrage:
ein frohes und gesundes Jahr wünsche ich euch allen!
Ich habe folgendes vor:
Über den Webbrowser wird eine JSP-Datei aufgerufen die eine Karte zeigt. Wird in die Karte geklickt so startet ein Java-Servlet, welches die Koordinaten übergeben bekommt und diese auch wieder zurückgibt und in Inputfelder schreibt. Das Funktioniert auch so wie es soll (ich weiss man könnte sie direkt über Javascript einfach in die Felder schreiben, ist aber nicht gewollt).
Im zweiten Schritt habe ich eine Java-Klasse geschrieben in der eine Verbindung zur Datenbank aufgebaut wird , eine Abfrage gestartet wird und die DB wieder geschlossen wird.(FUnktioniert mit einer statischen Abfrage traumhaft)
Nun möchte ich gerne diese Abfrage über das Servlet ansprechen und ihr eine spezielle Abfrage übergeben. Das Ergebnis soll dann an Stelle der Koordinaten auf der der *.jsp zu sehen sein.
Leider bekomme ich es nicht hin die Datenbankabfrage in das Servlet zu integrieren und die Abfrage somit zu übermitteln.
Servlet:
Java:
public class db_abfrage_koordinaten extends HttpServlet {
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
{
String hochwert = request.getParameter("hochwert");
String rechtswert = request.getParameter("rechtswert");
String abfrage = "SELECT station,distance(PointFromText('POINT("+hochwert+" "+rechtswert+")', 900913),transform(the_geom,900913)) as b FROM weatherstations order by b limit 1";
//Aufrufen der Datenbank aus database.java ????
String Wetterstation=null;//Wert an Wetterstation übergeben
response.setContentType("text/xml");
PrintWriter out = response.getWriter();
out.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
out.println("<test xmlns=\"http://java.sun.com/xml/ns/j2ee\">");
out.println("<tag>");
out.println(Wetterstation);
out.println("</tag>");
out.println("<tag>");
out.println(rechtswert);
out.println("</tag>");
out.println("</test>");
}
}
}
Java:
public class database
{
String driver = "org.postgresql.Driver";
// --------------------------------------------------------------------------
String host = "localhost"; // !!! anpassen !!!
String port = "5432"; // !!! anpassen !!!
String database = "postgis"; // !!! anpassen !!!
String user = "post"; // !!! anpassen !!!
String password = "post"; // !!! anpassen !!!
// --------------------------------------------------------------------------
Connection connection = null;
/**
* close the connection
*/
private void closeConnection ()
{
try
{
connection.close ();
}
catch (SQLException e)
{
e.printStackTrace ();
System.exit (1);
}
System.out.println ("\nconnection closed");
}
/**
* @return Url-string for postgreSQL-database connection
*/
private String getUrl ()
{
// PostgreSQL takes one of the following url-forms:
// ================================================
// jdbc:postgresql:database
// jdbc:postgresql://host/database
// jdbc:postgresql://host:port/database
return ("jdbc:postgresql:" + (host != null ? ("//" + host) + (port != null ? ":" + port : "") + "/" : "") + database);
}
/**
* loading the JDBC driver
*/
private void loadJdbcDriver ()
{
try
{
Class.forName (driver);
}
catch (ClassNotFoundException e)
{
e.printStackTrace ();
System.exit (1);
}
System.out.println ("driver loaded");
}
/**
* opening the connection
*/
private void openConnection ()
{
try
{
connection = DriverManager.getConnection (getUrl (),
user,
password);
}
catch (SQLException e)
{
e.printStackTrace ();
System.exit (1);
}
System.out.println ("connection opened");
}
/**
* show the weatherstation next to the coordinats
*/
private String Wetterstation (String abfrage)
{
String wetterstation = null;
try
{
Statement statement = connection.createStatement ();
ResultSet resultSet = statement.executeQuery (abfrage);
ResultSetMetaData resultSetMetaData = resultSet.getMetaData ();
while (resultSet.next ())
{
wetterstation = resultSet.getString (1);
}
resultSet.close ();
statement.close ();
}
catch (SQLException e)
{
e.printStackTrace ();
System.exit (1);
}
return wetterstation;
}
/**
* Constructor
*/
public void database (String abfrage)
{
loadJdbcDriver ();
openConnection ();
String Wetter = Wetterstation (abfrage);
System.out.print(Wetter);
closeConnection ();
}
public static void main(String[] args)
{
EventQueue.invokeLater (new Runnable ()
{
public void run ()
{
database database = new database ();
System.exit (0);
}
});
}
}
Zuletzt bearbeitet von einem Moderator: