如何使用Spring MVC 3.0实现Front Controller

时间:2013-01-16 07:26:48

标签: spring-mvc

我曾经使用javax.servlet.Filter来处理一些过程,例如身份验证和字符编码。 Spring MVC 3.0中是否有类似Filter的东西,在其他控制器处理它之前处理请求。(前端控制器)而且,它可以通过构造函数或setter注入依赖项。例如,

@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或其他网址的请求之前,应该授权用户。如果没有,他应该被重定向到其他网址,例如/ error。

1 个答案:

答案 0 :(得分:0)

  

我曾经使用javax.servlet.Filter来处理一些身份验证和字符编码等过程。

所有这些都已经存在于Spring中:

  

Spring MVC 3.0中是否存在类似Filter的内容,在其他控制器处理之前处理请求。(前端控制器)

是的,Spring有DispatcherServlet正是这样做的。

  

而且,它可以通过构造函数或setter注入依赖项。

是的,Spring会为你做的。

您可以从Spring Reference开始: