Spring的MVC是一个非常灵活的框架,可以无缝集成Struts/WebWork以及Velocity/Tapestry等View技术。Spring的DispatherServlet定义极为灵活,由于是开源框架,我们通过源代码,能轻松定制自己的处理流程。
为了实现页面缓存,可以改写DispatherServlet的doService()方法,这里提出一个解决方案:
利用WrappedResponse获得handler处理后的内容,然后缓存起来,这样在下次请求时,可以直接输出缓存内容。
由于在DispatherServlet一层实现了缓存,因此不管采用jsp或velocity都可以正常工作。
之所以不在Filter一层实现,是因为Filter无法得知Request相关上下文。
以后我们会更详细地讨论如何实现特定页面的缓存。