Use HTTP server that comes with java version 6 or more. Straight forward code.
As suggested above, REST can be implemented using Servlet technology.We cannot compare both.
Servelet is an adapter(Java) that converts http request to Java object/s and triggers a method(doGet/doPost) when ever the request Arrives and sends http response as per instructed in Java programatically.
public class server {
public static void main(String[] args) throws Exception {
//Start server
HttpServer server = HttpServer.create(new InetSocketAddress(8000, 0);
server.createContext("/monitor", new MyHandler());
server.createContext("/usage", new MyHandler());
server.setExecutor(java.util.concurrent.Executors.newCachedThreadPool()); //Uses New Thread every time
server.start();
System.out.println("Server Started at 8000...");
}
static class MyHandler implements HttpHandler {
@Override
public void handle(HttpExchange t) throws IOException {
URI uri = t.getRequestURI();
String path = uri.getPath();
InputStreamReader isr = new InputStreamReader(t.getRequestBody(), StandardCharsets.UTF_8);
BufferedReader br = new BufferedReader(isr);
int b;
StringBuilder buf = new StringBuilder(512);
while ((b = br.read()) != -1) {
buf.append((char) b);
}
br.close();
isr.close();
JSONObject body = null;
try {
body = new JSONObject(buf.toString());
} catch (Exception e) {
System.out.println(e.getMessage());
}
if (path.equals("/monitor")) {
//your Logic
//Use any other Library - I use GSON
Gson gson = new Gson();
String json = gson.toJson(POJO_OBJECT);
t.getResponseHeaders().set("Content-Type", "application/json");
t.getResponseHeaders().set("Access-Control-Allow-Origin", "*");
t.getResponseHeaders().set("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
t.sendResponseHeaders(200, json.length());
OutputStream os = t.getResponseBody();
os.write(json.getBytes());
os.close();
}
if (path.equals("/monitor")) {
//Your Logic
//Use any other Library - I use GSON
Gson gson = new Gson();
String json = gson.toJson(POJO_OBJECT);
//System.out.println(json);
t.getResponseHeaders().set("Content-Type", "application/json");
t.getResponseHeaders().set("Access-Control-Allow-Origin", "*");
t.getResponseHeaders().set("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
t.sendResponseHeaders(200, json.length());
OutputStream os = t.getResponseBody();
os.write(json.getBytes());
os.close();
}
}
}
}