2013-07-30 15 views
1

应该如何HttpServletResponse.setHeader方法做如下空值:HttpServletResponse.setHeader方法应该如何处理空值?

response.setHeader("ETag", null); 

虽然实现Servlet接口,我对这个有点困惑,因为the Java Servlet Specification看起来并不清楚这一点。

我想我可以选择其中之一:

  1. 考虑null作为emptry字符串 “”。将ETag标题的值设置为“”。
  2. 什么都不做。
  3. 抛出异常。

实际上,Tomcat的实现只是忽略。而netty,即使它不是Servlet implmentation,也会抛出NullPointerException异常。

+0

看起来像这样将基于servlet容器或Web应用程序服务器实现来处理此问题。 –

回答

0

根据W3C规范,ETag值必须双引号。您可以选择“无所事事”选项,或者添加规范化的实体标记标头

ETag: "some-etag-value" 
+0

是的,这是HTTP Server的ETag头的正确行为。但我认为setHeader方法不需要考虑设置哪个头。我想知道的是遵守Java Servlet规范的setHeader方法的正确行为。 – npcode