将html文件写回浏览器:Java

时间:2011-10-19 21:47:07

标签: java file browser

我从浏览器中读取了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();
        }
    }

我做错了什么?抛出没有异常,但浏览器只是不断加载和加载。

3 个答案:

答案 0 :(得分:1)

表明你的代码陷入无限循环。检查你的while循环。 nextLine()没有向前移动文件指针?

答案 1 :(得分:0)

如果不知道socketWriter是什么类型,很难说,但我想你需要关闭连接。在close()上查找socketWriter方法或类似方法,并在完成后调用它。

答案 2 :(得分:0)

从您的代码中可以看出,socketWriter的用途是什么。诸如套接字之类的低级操作最好由Web服务器本身处理。通常,当我们必须将响应写回浏览器时,我们会使用servlet的goGet / doPost方法中提供的HttpServletResponse对象。有关更多详细信息,请参阅javadoc。