2013-07-30 4 views
1

Как следует HttpServletResponse.setHeader метод делать с нулевым значением, как показано ниже:Как должен использовать метод HttpServletResponse.setHeader с нулевым значением?

response.setHeader("ETag", null); 

Реализуя интерфейс Servlet, я немного запутался на это, потому что the Java Servlet Specification выглядит не ясно об этом.

Я думаю, что я могу выбрать один из них:

  1. Рассмотрим нуль в качестве emptry строки "". Установите значение заголовка ETag в значение "".
  2. Ничего не делать.
  3. Выбросить исключение.

На практике реализация Tomcat просто игнорируется. И netty, даже если он не является внедрением сервлета, генерирует исключение NullPointerException.

+0

Похоже, что это будет обрабатываться на основе контейнера сервлетов или реализации сервера веб-приложений для его обработки. –

ответ

0

Согласно спецификации W3C значения ETag должны быть двойными. Вы можете либо выбрать вариант «ничего не делать», либо добавить заголовок тега со специфицированным контуром

ETag: "some-etag-value" 
+0

Да, это правильное поведение HTTP-сервера для заголовка ETag. Но я думаю, что метод setHeader не должен учитывать, какой заголовок установлен. То, что я хочу знать, - это правильное поведение метода setHeader, который подчиняется спецификации Java Servlet. – npcode