2013-09-25 4 views
12

Например, HttpServletResponse имеет коды состояния HTTP в качестве констант, какЛюбой метод получения константы для HTTP GET, POST, PUT, DELETE?

public static final int SC_OK = 200; 
public static final int SC_CREATED = 201; 
public static final int SC_BAD_REQUEST = 400; 
public static final int SC_UNAUTHORIZED = 401; 
public static final int SC_NOT_FOUND = 404; 

Есть ли такие константы, определенные для методов HTTP, как GET, POST ..., в любом месте в API Java EE, так что это может быть легко ссылаться, а не создавать его самостоятельно?

+0

Класс 'HttpServlet' объявляет их, но они являются' private'. Напишите свои собственные, возможно, как перечисления. –

+3

Пожалуйста, https://java.net/projects/javaee-spec/pages/JEE (кроме неправильного использования тега в заголовке вместо сохранения его в тегах) – BalusC

+0

@BalusC это сообщение сообщает, что это невозможно, что было истинным до Явы 5. Я принял ответ Мэтта и его ссылку на полный список констант. Я обнаружил, что эти константы существуют на самом деле с тех пор, как Java 6. –

ответ

13

Если вы используете Spring, то есть этот Enum org.springframework.web.bind.annotation.RequestMethod

public enum RequestMethod { 
    GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE; 
} 

EDIT: Вот complete list of constants values in Java 6 Вы можете видеть, что некоторые из них доступны в классе HttpMethod, но она содержит меньше значения, чем RequestMethod ,

public @interface HttpMethod { 
    java.lang.String GET = "GET"; 
    java.lang.String POST = "POST"; 
    java.lang.String PUT = "PUT"; 
    java.lang.String DELETE = "DELETE"; 
    java.lang.String HEAD = "HEAD"; 
    java.lang.String OPTIONS = "OPTIONS"; 

    java.lang.String value(); 
} 
+1

Эта аннотация находится в стеке Java EE API, но недоступна в 'servlet-api', которую я предполагаю, о чем спрашивает OP. –