2.Post weil ich es in falscher Stelle gepostet hatte.
Hat jemand eine Idee über Thread Handling in Java http server?
Ich habe die HTTP server wie unten implementiert. Ich möchte bei jeder Client Verbindung (wie z.B. Aktualisierung der Web Seite) eine Datanbankabfrage laufen und die Werte im Bildschirm ausgeben. Funktioniert soweit.
String response = QueryManager.runQuery();
Aber mein Problem ist dass bei jedem Client Zugriff wird ein neues Thread erzeugt. Das möchte ich vermeiden, wegen Speicherüberlauf.
Aber wenn ich das Response als statische Variabel definiere, passiert das nicht. wie z.B. String response = "test";
Hat jemand eine Idee über Thread Handling in Java http server?
Ich habe die HTTP server wie unten implementiert. Ich möchte bei jeder Client Verbindung (wie z.B. Aktualisierung der Web Seite) eine Datanbankabfrage laufen und die Werte im Bildschirm ausgeben. Funktioniert soweit.
String response = QueryManager.runQuery();
Aber mein Problem ist dass bei jedem Client Zugriff wird ein neues Thread erzeugt. Das möchte ich vermeiden, wegen Speicherüberlauf.
Aber wenn ich das Response als statische Variabel definiere, passiert das nicht. wie z.B. String response = "test";
Code:
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.util.Calendar;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
public class MyHTTPServer implements HttpHandler {
HttpServer server;
String myname;
String mydesc;
int port = 8080;
class MyHandler implements HttpHandler {
public void handle(HttpExchange t) throws IOException {
String response = QueryManager.runQuery();
if (response.length() == 0) {
response = "0";
}
// System.out.println(response);
t.sendResponseHeaders(200, response.length());
OutputStream os = t.getResponseBody();
os.write(response.getBytes());
os.close();
}
}
public MyHTTPServer() throws IOException {
HttpServer server = HttpServer.create(new InetSocketAddress(port), 100);
server.createContext("/", new MyHandler());
server.setExecutor(null);
server.start();
}
public void read(InputStream is) {
}
public static void main(String argv[]) {
try {
new MyHTTPServer(); // start the result server
} catch (Exception e) {
e.printStackTrace();
}
}
public void handle(HttpExchange arg0) throws IOException {
}
}