我想在继续执行正文之前检查请求的标头是否包含某个标头。例如,我要检查"Authorization"标题中是否包含multipart / form- data 。如果不是,则无需继续上载通常对于文件上载而言很大的多部分主体。
"Authorization"
Servlet是否允许您执行此操作?我尝试在Google上随机搜索,但是没有运气。这是我在servlet中尝试的代码,但是在doPost调用此方法之前,它仍然继续接收主体。似乎在调用servlet之前已完全接收到流。
doPost
@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 }
那就是HTTP的局限性。当尚未完全读取请求以结束时,您将无法发送响应。