java拦截器返回自定义数据
时间: 2023-09-15 12:17:33 浏览: 39
要在Java拦截器中返回自定义数据,可以使用以下步骤:
1. 创建一个类,该类包含您想要返回的数据。
2. 在拦截器中,使用 HttpServletResponse 对象将您的数据写入响应正文中。
3. 在拦截器中,使用 HttpServletResponse 对象设置响应状态代码。
以下是一个简单的示例:
```java
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 检查请求是否合法
if (!isValid(request)) {
// 如果请求不合法,返回自定义错误数据
MyResponse myResponse = new MyResponse();
myResponse.setStatus("error");
myResponse.setMessage("Invalid request");
// 将自定义数据写入响应正文中
response.getOutputStream().write(new ObjectMapper().writeValueAsBytes(myResponse));
// 设置响应状态代码为 400
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
return false;
}
return true;
}
// 其他方法省略...
}
```
在上面的示例中,我们创建了一个名为 `MyResponse` 的类,该类包含了我们想要返回的自定义数据。在拦截器的 `preHandle` 方法中,我们检查请求是否合法,如果请求不合法,我们将自定义数据写入响应正文中,并设置响应状态代码为 400。在这个例子中,我们使用了 Jackson 库将自定义数据转换为字节数组,并将其写入响应正文中。