Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SpringMVC-如何将数据从过滤器传递到控制器_Spring_Model View Controller - Fatal编程技术网

SpringMVC-如何将数据从过滤器传递到控制器

SpringMVC-如何将数据从过滤器传递到控制器,spring,model-view-controller,Spring,Model View Controller,我在我的web应用程序中使用SpringMVC。对于每个请求,我都要准备好环境,例如,从数据存储中加载一些数据并保存,以便每个控制器都可以访问这些信息。我想这就是过滤器的用途(以及其他用途)。我可以将信息附加到过滤器中的请求变量,但如何从控制器访问它?或者有没有更好的方法呢?我不明白为什么这是一件好事,不管是过滤还是否 如果您确实拥有每个控制器都需要的只读数据,我认为在启动时加载缓存解决方案是一个更好的主意。我不会用过滤器来做这件事,我也不会用这样的东西来加重每个请求的负担。一旦完成了,为什么还

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

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


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

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


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

@duffymo是对的,但如果你真的想这么做,我建议你使用拦截器
@duffymo是对的,但如果你真的想这么做,我建议你使用拦截器

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

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

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


希望这对你有帮助。干杯。

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

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

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


希望这对你有帮助。干杯。

过滤器只不过是HTTP特定的拦截器。我的意见是不要用这样的东西来加重每个请求的负担。谢谢。但是这个问题仍然没有得到完全的回答。。。如何将任何数据从拦截器传递到控制器?让我们以Spring文档中使用的示例为例,检查开放时间。如果我想在每个处理程序中使用当前的小时值呢?是的,我可以再次计算,但是我会在每个请求中做同样的事情两次,并且我还必须为每个处理程序添加一行冗余的代码。我知道这不是一个很好的例子,但希望你现在明白我的意思;你可以在控制器中或者在会话中检索这些日期。一个过滤器只不过是一个特定于HTTP的拦截器。我的意见是不要用这样的东西来加重每个请求的负担。谢谢。但是这个问题仍然没有得到完全的回答。。。如何将任何数据从拦截器传递到控制器?让我们以Spring文档中使用的示例为例,检查开放时间。如果我想在每个处理程序中使用当前的小时值呢?是的,我可以再次计算,但是我会在每个请求中做同样的事情两次,并且我还必须为每个处理程序添加一行冗余的代码。我知道这不是一个很好的例子,但希望你现在明白我的意思;你可以在控制器或会话中检索这些日期