我正在编写基于Spring 3.1.0 MVC的应用程序。问题是:我想将一些对象放在单个对象(当前HttpServletRequest
和HttpSevletResponse
)中,以便在其他对象(Spring Controllers)中使用它们。但是不能这样做。我尝试扩展DispatcherServlet
,覆盖doService
和doDispatch
。还试图实现自己的HandlerInterceptor
。没有结果。
我在哪里可以初始化我的单例对象? Spring Frameworks的入口点和破坏点(即init()
和destroy()
方法或生命周期)在哪里?
答案 0 :(得分:1)
当前HttpServletRequest
和HttpServletResponse
可用作控制器方法的方法参数:
@RequestMapping("/foo")
public String foo(HttpServletRequest request) {
}
我相信你也可以在你的控制器中@Inject
。将注入代理,每次引用它们时,将使用当前代理。 (我不是100%肯定这个)
第三种选择是使用RequestContextHolder
容器,并从那里获取所有内容。