我从浏览器中读取了HTML文档的请求,从请求中解析了文件,找到了指定的文件,现在剩下的就是将HTML文件的内容发送回浏览器。我目前正在做的似乎应该可以正常工作,但浏览器不会收到HTML文件的内容。
public void sendResponse(File resource){
System.out.println(resource.getAbsolutePath());
Scanner fileReader;
try {
fileReader = new Scanner(resource);
while(fileReader.hasNext()){
socketWriter.println(fileReader.nextLine());
}
} catch (FileNotFoundException e) {
System.out.println("File not found!");
e.printStackTrace();
}
}
我做错了什么?抛出没有异常,但浏览器只是不断加载和加载。
答案 0 :(得分:1)
表明你的代码陷入无限循环。检查你的while循环。 nextLine()没有向前移动文件指针?
答案 1 :(得分:0)
如果不知道socketWriter
是什么类型,很难说,但我想你需要关闭连接。在close()
上查找socketWriter
方法或类似方法,并在完成后调用它。
答案 2 :(得分:0)
从您的代码中可以看出,socketWriter的用途是什么。诸如套接字之类的低级操作最好由Web服务器本身处理。通常,当我们必须将响应写回浏览器时,我们会使用servlet的goGet / doPost方法中提供的HttpServletResponse对象。有关更多详细信息,请参阅javadoc。