1

我在我的 Web 应用程序中使用Spring MVC 。对于我想准备环境的每个请求,例如从数据存储中加载一些数据并保存它,以便每个控制器都可以访问该信息。我认为这就是过滤器的用途(除其他外)。我可以将信息附加到request过滤器中的变量,但是如何从控制器访问它?或者有没有更好的方法来做到这一点?

4

3 回答 3

2

我不明白为什么这是一件好事,过滤与否。

如果您确实拥有每个控制器所需的只读数据,我认为在启动时加载的缓存解决方案是一个更好的主意。我不会用过滤器来做这件事,我不会用这样的东西给每个请求增加负担。一旦完成,为什么还要重复这个动作?

于 2012-06-19T20:04:50.427 回答
2

我认为您目前的问题是如何在您的过滤器中获取请求中的数据集(您已经完成),然后在您的控制器的 hamdlerMapping 方法中访问它(您想要实现)。

我同意前面的两个答案,但是如果您决定这样做,那么我认为您应该遵循我的答案。

在处理程序方法中,您已将请求映射到控制器中,您可以在方法签名中有一个参数,HttpServletRequest request它将包含您在过滤器中设置的请求参数。你可以从你的控制器中的这个请求对象中得到它。

希望这对您有所帮助。干杯。

于 2012-06-20T05:09:05.393 回答
0

@duffymo 是对的,但如果你真的想这样做,我建议你使用拦截器 http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc -handlermapping-interceptor

于 2012-06-19T20:07:44.223 回答