【问题标题】:Writing html file back to browser : Java将html文件写回浏览器:Java
【发布时间】:2011-12-11 07:57:58
【问题描述】:

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

我做错了什么?没有抛出异常,只是浏览器一直在加载和加载。

【问题讨论】:

  • 场景不清楚。你的程序是一个小程序、一个 servlet 还是独立的?
  • 你在冲洗/关闭套接字吗?
  • 加上关闭/等,您是否返回正确的响应标头?

标签: java file browser


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      从您的代码中看不到 socketWriter 的去向。像套接字这样的低级操作最好由 Web 服务器本身处理。通常,当我们必须向浏览器写回响应时,我们会使用您的 servlet 的 goGet / doPost 方法中可用的 HttpServletResponse 对象。有关详细信息,请参阅 javadocs。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-13
        • 2023-03-20
        • 2020-07-30
        • 1970-01-01
        • 2013-09-10
        • 2015-12-30
        • 2016-04-25
        • 2012-09-14
        相关资源
        最近更新 更多