所以我有一个任务,我必须用选择的编程语言制作一个 HTTP 服务器。没什么大不了的。我遇到了一个我似乎无法弄清楚的问题。每次我加载主页和服务器响应时,它都会打印大约 5 次。想不通为什么。好的,我的意思是:
代码片段:
while(true){
connectedClient = listenSocket.accept();
inFromClient = new BufferedReader( new InputStreamReader( connectedClient.getInputStream()));
outToClient = new DataOutputStream(connectedClient.getOutputStream());
String requestString = inFromClient.readLine();
String headerLine = requestString;
StringTokenizer tokenizer = new StringTokenizer(headerLine);
String httpMethod = tokenizer.nextToken();
String httpQueryString = tokenizer.nextToken();
requestString = inFromClient.readLine();
if (httpMethod.equals("GET")) {
if (httpQueryString.equals("/Home")) {
// The default home page status code 200
dateHeader();
connectionCloseHeader();
}
//other code not related
}
这是我的日期标题方法:
public static void dateHeader() throws Exception{
DateFormat dateFormat = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss z");
Date date = new Date();
System.out.println("Date: " + dateFormat.format(date));
}
我到终端的输出将是日期的 5 个打印输出。我确保连接等已关闭,但同样的事情发生了。任何人都知道为什么会这样?谢谢。
编辑
似乎在使用 Chrome 时,我可以打印出来没有问题。我正在使用 Opera 进行测试,这给了我 5 个打印输出。也许浏览器的工作方式导致了这个问题。不过,我现在只使用 chrome。