@HttpMethod在方法上设置还是类上
时间: 2023-12-27 17:02:47 浏览: 68
@HttpMethod 注解是用于指定 Servlet 或 Filter 类中的 HTTP 方法处理函数的注解。这个注解可以设置在方法上或者类上。
如果设置在方法上,那么这个注解会覆盖掉类级别的注解,指定该方法只能处理指定的 HTTP 方法。例如:
```java
@WebServlet("/example")
public class ExampleServlet extends HttpServlet {
@HttpMethod("GET")
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 处理 GET 请求
}
@HttpMethod("POST")
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 处理 POST 请求
}
}
```
如果设置在类上,那么这个注解会应用于所有的 HTTP 方法处理函数。例如:
```java
@WebServlet("/example")
@HttpMethod("POST")
public class ExampleServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 这个方法不能处理 GET 请求
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 处理 POST 请求
}
}
```
需要注意的是,如果在类上同时设置了 @HttpMethod 和 @HttpConstraint 注解,那么 @HttpMethod 注解会覆盖 @HttpConstraint 中指定的 HTTP 方法。
阅读全文