2013-07-30 57 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