created http server and new thread
This commit is contained in:
parent
2e0abb2f6e
commit
3b69bc3cc9
88
src/Webserver.java
Normal file
88
src/Webserver.java
Normal file
@ -0,0 +1,88 @@
|
||||
import com.sun.net.httpserver.Headers;
|
||||
import com.sun.net.httpserver.HttpExchange;
|
||||
import com.sun.net.httpserver.HttpHandler;
|
||||
import com.sun.net.httpserver.HttpServer;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.URI;
|
||||
|
||||
public class Webserver{
|
||||
public void startserver(){
|
||||
System.out.println("starting server");
|
||||
HttpServer server = null;
|
||||
try {
|
||||
server = HttpServer.create(new InetSocketAddress(8000), 0);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
server.createContext("/", new MyHandler());
|
||||
|
||||
//receiving get and post data todo
|
||||
server.createContext("/senddata/test", new HttpHandler() {
|
||||
@Override
|
||||
public void handle(HttpExchange httpExchange) throws IOException {
|
||||
if (httpExchange.getRequestMethod().equals("GET")){
|
||||
String query = httpExchange.getRequestURI().getQuery();
|
||||
System.out.println(query);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
server.setExecutor(null); // creates a default executor
|
||||
server.start();
|
||||
}
|
||||
|
||||
static class MyHandler implements HttpHandler {
|
||||
@Override
|
||||
public void handle(HttpExchange t) throws IOException {
|
||||
System.out.println("a new request...");
|
||||
String root = "./wwwroot";
|
||||
URI uri = t.getRequestURI();
|
||||
String path;
|
||||
|
||||
if (uri.getPath().equals("/")){
|
||||
path = "/index.html";
|
||||
}else{
|
||||
path = uri.getPath();
|
||||
}
|
||||
System.out.println("looking for: "+ root + path);
|
||||
|
||||
File file = new File(root + path).getCanonicalFile();
|
||||
|
||||
if (!file.isFile()) {
|
||||
// Object does not exist or is not a file: reject with 404 error.
|
||||
String response = "404 (Not Found)\n";
|
||||
t.sendResponseHeaders(404, response.length());
|
||||
OutputStream os = t.getResponseBody();
|
||||
os.write(response.getBytes());
|
||||
os.close();
|
||||
} else {
|
||||
// Object exists and is a file: accept with response code 200.
|
||||
String mime = "text/html";
|
||||
if(path.substring(path.length()-3).equals(".js")) mime = "application/javascript";
|
||||
if(path.substring(path.length()-3).equals("css")) mime = "text/css";
|
||||
|
||||
Headers h = t.getResponseHeaders();
|
||||
h.set("Content-Type", mime);
|
||||
t.sendResponseHeaders(200, 0);
|
||||
|
||||
OutputStream os = t.getResponseBody();
|
||||
FileInputStream fs = new FileInputStream(file);
|
||||
final byte[] buffer = new byte[0x10000];
|
||||
int count = 0;
|
||||
while ((count = fs.read(buffer)) >= 0) {
|
||||
os.write(buffer,0,count);
|
||||
}
|
||||
fs.close();
|
||||
os.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
15
src/main.java
Normal file
15
src/main.java
Normal file
@ -0,0 +1,15 @@
|
||||
public class main {
|
||||
public static void main(String[] args) {
|
||||
Thread mythread = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
new Webserver().startserver();
|
||||
}
|
||||
});
|
||||
mythread.start();
|
||||
System.out.println("thread started");
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
3
wwwroot/css/index.css
Normal file
3
wwwroot/css/index.css
Normal file
@ -0,0 +1,3 @@
|
||||
.test{
|
||||
background-color: #FF0000;
|
||||
}
|
8
wwwroot/index.html
Normal file
8
wwwroot/index.html
Normal file
@ -0,0 +1,8 @@
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" type="text/css" href="css/index.css">
|
||||
</head>
|
||||
<body class="test">
|
||||
hello there
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user