기록용~!
암튼 초간단 서버 구축 클래스가 있었네요.
import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.concurrent.Executors;
import com.sun.net.httpserver.HttpServer;
public class Test {
public static void main(String[] args) throws IOException {
InetSocketAddress addr = new InetSocketAddress(9000);
HttpServer server = HttpServer.create(addr, 0);
server.createContext("/", new MyHandler());
server.setExecutor(Executors.newCachedThreadPool());
server.start();
}
}
해당포트로 HttpServer.create로 서버 생성하고, 핸들러클래스를 파라메터로 넣으면 저기 핸들러에서 다 처리를 하는 듯하네요.
MyHandler.java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URI;
import com.sun.net.httpserver.Headers;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
public class MyHandler implements HttpHandler {
private String root = "D:/root/";
@Override
public void handle(HttpExchange exchange) throws IOException {
String requestMethod = exchange.getRequestMethod();
if (requestMethod.equalsIgnoreCase("GET")){
Headers responseHeaders = exchange.getResponseHeaders();
responseHeaders.set("Content-Type", "text/html");
URI uri = exchange.getRequestURI();
System.out.println(uri.getPath());
OutputStream responseBody = exchange.getResponseBody();
BufferedReader br = new BufferedReader(new FileReader(root + uri.getPath()));
exchange.sendResponseHeaders(200, 0);
int b = 0;
while((b = br.read()) != -1){
responseBody.write(b);
}
responseBody.close();
}
}
}
get 요청인 경우 해당 path에서 파일을 찾아서 그냥 뿌려주는 게 다임 ㅇㅇ
지금셋팅은 http://localhost:9000/index.html을 요청하면 d:/root/index.html 파일을 읽어서 뿌려줌 ㅇㅇ
ps. 생각해보니 파일을 주고받으려고 찾고 있었는데, ftp서버를 찾았어야 했는데......젠장......ㅠㅠ
mudchobo.zip
