【问题标题】:HTTP Status code in Java server based web application基于 Java 服务器的 Web 应用程序中的 HTTP 状态代码
【发布时间】:2011-08-08 17:09:40
【问题描述】:

我有一个使用 XML 进行数据交换的 Java 网络应用程序。我编写了一个 servlet,它使用 HTTP Post 从特定客户端上传 XML 文件。一旦 Post 方法成功完成,它会向客户端发送 200 OK 消息(使用默认的 Web 服务器 HTTP 状态)。现在我需要在我的应用程序中包含一些 HTTP 状态代码,以便客户端在上传出现问题时获得一些 HTTP 状态消息(例如 400 Bad request,502 bad gateway)。我应该如何在我的 Web 应用程序中添加 HTTP 状态代码?请帮我提出建议。谢谢

【问题讨论】:

    标签: java xml http-status-codes http-upload data-exchange


    【解决方案1】:

    您可以使用HttpServletResponse#setStatus()HttpServletResponse#sendError()

    @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response) {
    
        // handle upload
    
        // if error
        response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
    
        // or
        response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
                           "An unknown error occurred");
    }
    

    这些方法的不同之处在于它们导致 servlet 容器执行的操作,因此请选择最适合您情况的方法。

    • setStatus()

      如果使用此方法设置错误代码,则容器的 不会触发错误页面机制。

    • sendError()

      使用指定的状态向客户端发送错误响应,并且 清除缓冲区。服务器默认创建响应 看起来像一个 HTML 格式的服务器错误页面,其中包含指定的 留言

    Field Summary of the javadoc 中提供了状态代码常量列表。对于您问题中的代码:

    【讨论】:

      【解决方案2】:

      【讨论】:

        猜你喜欢
        • 2012-12-13
        • 1970-01-01
        • 1970-01-01
        • 2020-05-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-10
        • 2012-10-03
        相关资源
        最近更新 更多