我曾经使用 javax.servlet.Filter 来处理一些过程,例如身份验证和字符编码。Spring MVC 3.0 中是否有类似过滤器的东西,在其他控制器处理请求之前处理请求。(前端控制器)而且,它能够通过构造函数或设置器注入依赖项。例如,
@Controller
public class HomeController {
@RequestMapping("/home")
public String getHomePage() {
return "home";
}
}
public class Authentication {
private Foo foo;
public void setFoo(Foo foo) {
this.foo = foo;
}
// filter the url "/home"
public String authenticate() {
if (foo.authenticated()) {
return toHomeController;
}
return toErrorController;
}
}
在处理来自 /home 或其他 url 的请求之前,应该授权用户。如果没有,他应该被重定向到其他 url,例如 /error。