import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateExceptionHandler;
import futureweb.FutureWeb;
import futureweb.FutureWeb.*;
import futureweb.Route;
import io.netty.handler.codec.http.HttpRequest;
import java.io.*;
import java.lang.reflect.Array;
import java.lang.reflect.Method;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static io.netty.handler.codec.http.HttpHeaders.Names.CONTENT_TYPE;
/**
* Created by dns on 3/6/2014.
*/
public class WebMain {
public static void main (String[] args) throws Exception {
//System.out.println(args.length);
webserver();
/*
FutureWeb app = new FutureWeb();
//app.setHost("0.0.0.0");
//app.setPort(8080);
app.get(new Route("/") {
@Override
public void handle () {
//System.out.println("888");
response.setContentType("text/plain; charset=UTF-8");
//response.setServer("test/123");
response.write("this is rendered text"); // cookie key can't contain spaces
//response.redirect("http://bing.com/"); // cookie key can't contain spaces
//response.setCookie("foo", "bar"); // cookie key can't contain spaces
// BUG: COOKIE ERROR, apache bench verbose
}
});
app.run();
*/
}
static void webserver () throws Exception {
String clientSentence;
String capitalizedSentence;
ServerSocket welcomeSocket = new ServerSocket(8080);
while (true) {
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
clientSentence = inFromClient.readLine();
System.out.println("Received: " + clientSentence);
//capitalizedSentence = clientSentence.toUpperCase() + '\n';
outToClient.writeBytes("HTTP/1.0 200 OK\r\n");
outToClient.writeBytes("Server: FutureWeb/0.0.1\r\n");
outToClient.writeBytes("Content-Type: text/plain\r\n\r\n");
// Content-Type: text/html; charset=UTF-8
// Content-Length: 2354
outToClient.writeBytes("test 123");
outToClient.flush();
outToClient.close();
}
}
static String freemarker () throws Exception {
Configuration cfg = new Configuration();
cfg.setDefaultEncoding("UTF-8");
cfg.setObjectWrapper(new DefaultObjectWrapper());
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.HTML_DEBUG_HANDLER);
cfg.setDirectoryForTemplateLoading(new File("templates"));
HashMap hash = new HashMap();
hash.put("a", "ABCD");
HashMap names = new HashMap();
names.put("b", "names B");
names.put("c", "names C");
hash.put("names", names);
ArrayList array = new ArrayList();
array.add(111);
array.add("222");
hash.put("array", array);
Template temp = cfg.getTemplate("test.html");
Writer stringwriter = new StringWriter(); //new OutputStreamWriter(System.out);
temp.process(hash, stringwriter);
//System.out.print(stringwriter.toString());
return stringwriter.toString();
}
}