小编典典

在Servlet中检查标头后如何删除请求的正文

java

我想在继续执行正文之前检查请求的标头是否包含某个标头。例如,我要检查"Authorization"标题中是否包含multipart / form-
data 。如果不是,则无需继续上载通常对于文件上载而言很大的多部分主体。

Servlet是否允许您执行此操作?我尝试在Google上随机搜索,但是没有运气。这是我在servlet中尝试的代码,但是在doPost调用此方法之前,它仍然继续接收主体。似乎在调用servlet之前已完全接收到流。

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    PrintWriter out = response.getWriter();
    response.setContentType("text/plain");
    if (request.getHeader("Authorization") == null) {
        response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
        out.println("Status: " + HttpServletResponse.SC_UNAUTHORIZED + " - UNAUTHORIZED");
        return;
    }
    // ... the rests
}

阅读 294

收藏
2020-11-26

共1个答案

小编典典

那就是HTTP的局限性。当尚未完全读取请求以结束时,您将无法发送响应。

2020-11-26