運用Filter 在 進入Contraller 之前, 把Parameters 或O
时间: 2024-10-08 10:20:11 浏览: 32
在Spring MVC中,Filter主要用于在请求进入Controller处理前或后对HTTP请求进行预处理或后处理。如果你想要在控制器方法处理请求之前检查或者修改参数(Params),你可以创建一个Filter,并在`doFilter()`方法里访问HttpServletRequest对象获取参数。
例如,如果你想检查每个请求的User ID参数是否存在且有效,你可以这样做:
```java
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
public class ParameterCheckingFilter implements Filter {
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
String userId = request.getParameter("userId");
if (userId == null || userId.isEmpty()) {
// 如果userId不存在或为空,可以返回错误响应或者发送一个转发
HttpServletResponse response = (HttpServletResponse) res;
response.sendError(HttpServletResponse.SC_BAD_REQUEST, "UserId is required");
} else {
// 参数校验通过,继续执行后续流程
chain.doFilter(req, res);
}
}
// 其他滤器生命周期方法在这里省略
}
```
在这个例子中,如果`userId`参数不符合预期,就会发送一个400 Bad Request响应。如果一切正常,控制权将传递给下一个处理链。
阅读全文