Servlet API中是否有任何请求方法枚举?

时间:2017-08-18 10:37:32

标签: servlets

还有更优雅的方法吗?

if (request.getMethod() == "OPTIONS") {
   ...
}

我的意思是我可以使用enumclass来引用吗?

示例:

if (request.getContentType().equals(MediaType.APPLICATION_JSON)) {
    ...
}

1 个答案:

答案 0 :(得分:2)

  

还有更优雅的方法吗?

     
if (request.getMethod() == "OPTIONS") {    
    ... 
}

这甚至都不正确。在Java中,您必须使用equals()而不是==进行String比较:

if ("OPTIONS".equals(request.getMethod())) {    
     ... 
}
  

我是否可以使用任何枚举或类来引用?

HttpServlet类中,您将找到HTTP方法的一些常量,但它们是私有的,因此您将无法使用它们。

如果您使用的是JAX-RS,则可以使用HttpMethod中定义的常量。为DELETEGETHEADOPTIONSPOSTPUT方法定义了常量。从JAX-RS 2.1开始,PATCH的常量将可用。