📄 processor.java
字号:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
public class Processor extends Thread {
private Socket socket;
private InputStream in;
private PrintStream out;
private static final String WebRoot = "e:\\";
public Processor(Socket socket) {
this.socket = socket;
try {
in = socket.getInputStream();
out = new PrintStream(socket.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
public void run() {
String filename = parse(in);
sendfile(filename);
}
public String parse(InputStream in) {
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String filename = null;
try {
String httpMessage = br.readLine();
String content[] = httpMessage.split("");
if (content.length != 3) {
senderrorMessage(503, "Client query error!");
return null;
}
System.out.println("code:" + content[0] + ",filename:" + content[1]
+ ",http version;" + content[2]);
filename = content[1];
} catch (IOException e) {
e.printStackTrace();
}
return filename;
}
private void senderrorMessage(int errorCode, String errorMessage) {
out.println("HTTP/1.0" + errorCode + " " + errorMessage);
out.println("Content-Type:text/html");
out.println("html");
out.println("title" + "ErrorMessager");
out.println("/title");
out.println("body");
out.println("<h1>ErrorCode" + errorCode + "Message" + errorMessage
+ "</h1>");
out.println("/body");
out.println("/html");
}
private void sendfile(String filename) {
File file=new File(WebRoot+filename);
if(!file.exists()){
senderrorMessage(507,"File not found!");
return;
}
try {
FileInputStream filein=new FileInputStream(file);
byte content[]=new byte[(int)file.length()];
filein.read(content);
out.println("Http/1.0 200 queryfile");
out.println("content-length"+content.length);
out.println();
out.write(content);
out.flush();
out.close();
in.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -