过滤器的dofilter方法例子
时间: 2023-11-08 14:10:48 浏览: 37
假设我们有一个过滤器,需要对请求进行身份验证,只有当请求携带正确的token时才能访问Servlet,并在响应头中添加一些自定义的信息。那么,我们可以编写如下的doFilter方法:
```java
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
// 获取请求头中的token
String token = request.getHeader("token");
if (token != null && token.equals("correct_token")) {
// 身份验证通过,继续处理请求
chain.doFilter(request, response);
// 添加自定义的响应头信息
response.setHeader("custom-header", "custom-value");
} else {
// 身份验证失败,返回401错误码
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
}
}
```
在上述代码中,我们首先获取了请求头中的token,如果token与预期的值相同,则调用FilterChain对象的doFilter方法,将请求传递给下一个过滤器或Servlet进行处理。否则,我们设置响应的状态码为401,表示身份验证失败。
如果身份验证通过,我们在响应头中添加了一个自定义的信息。这个过滤器可以用于对需要身份验证的API进行保护。