首先说一下,静态资源的缓存没有问题,该问题是关于动态内容的缓存,需求是获取各国家列表,因为国家列表内容相对稳定些,所以想利用缓存节省不必要的开销。
代码如下:
-
用于获取各国家列表的 Controller:
@Controller @RequestMapping("/country") public class CountryController{ @Autowired private CountryService countryService; @RequestMapping(method=RequestMethod.GET) public ModelAndView show(){ ModelAndView mav = new ModelAndView(); mav.addObject("countryMap", countryService.getCountries()); mav.setViewName("test"); return mav; } }
-
缓存拦截器配置
<mvc:interceptor> <mvc:mapping path="/country*" /> <bean class="org.springframework.web.servlet.mvc.WebContentInterceptor" > <property name="cacheMappings"> <map> <entry key="/country.json" value="31536000"></entry> <entry key="/country" value="31536000"></entry> </map> </property> </bean> </mvc:interceptor>
当请求 http://host:port/app/country 时,请求头信息和响应头信息如下:
Request
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:zh-CN,zh;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Cookie:JSESSIONID=FE1D5C67B795BEBB40C2A72367170A52
Host:localhost:8080
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36
Response Cache-Control:max-age=31536000 Content-Language:zh-CN Content-Length:4033 Content-Type:text/html;charset=UTF-8 Date:Sun, 23 Mar 2014 11:25:19 GMT Expires:Mon, 23 Mar 2015 11:25:19 GMT Server:Apache-Coyote/1.1
响应头信息中的 Cache-Control 和 Expires 都正确,多次刷新页面,通过浏览器调试工具查看,并没有从缓存中获取内容,希望懂的朋友帮忙找找原因。
相关推荐
Spring MVC 是一个基于Java的轻量级Web应用框架,它为开发者提供了模型-视图-控制器(MVC)架构,使开发人员能够更好地组织和分离应用程序的业务逻辑、数据处理和用户界面。Spring MVC是Spring框架的一个核心组件,...
在IT行业中,构建一个高效的Web应用常常涉及到各种技术的整合,比如Spring MVC作为控制器层的框架,Redis作为高性能的键值存储系统用于缓存。本文将详细讲解如何使用Maven来简单搭建一个集成了Spring MVC和Redis缓存...
### Spring MVC 教程知识点详解 #### Spring Web MVC 框架简介 Spring Web MVC 是 Spring Framework 的一个重要组成部分,主要用于构建基于 Java 的 Web 应用程序。它提供了一个灵活且强大的 MVC 实现,使得开发者...
Spring框架则是一个全面的企业级应用开发平台,它不仅包含Spring MVC,还提供了依赖注入(DI)、AOP(面向切面编程)、事务管理、JDBC抽象、缓存、任务调度等多个核心功能。在全注解开发中,我们可以使用@Autowired...
以上只是Spring MVC 5.0.3中的一部分关键特性,实际上还有许多其他功能和优化,如国际化、缓存、上传文件等,都极大地提高了开发效率和应用程序的可维护性。在实际项目中,理解并熟练掌握这些知识点,将有助于构建出...
7. 性能优化:为了提升系统性能,可能需要实施缓存策略(如使用Spring Cache或Redis)、数据库连接池(如Druid或HikariCP)、以及合理的数据库索引设计。 8. 扩展性与维护性:采用模块化设计,每个功能模块独立,...
15. **性能优化**:了解如何缓存结果、使用CDN、优化视图渲染速度等,提升Spring MVC应用的性能。 通过这本书,开发者可以系统地学习Spring MVC的各个方面,提升在实际项目中的应用能力。无论你是初学者还是有经验...
《Spring MVC与MYBatis企业应用实战》是一本深度探讨如何在实际企业环境中集成和运用Spring MVC和MYBatis两大主流技术的书籍。Spring MVC作为Spring框架的重要组成部分,是Java Web开发中的强大控制器,而MYBatis则...
Spring MVC是Spring框架的一个核心模块,专为构建Web应用程序而设计。它提供了模型-视图-控制器(MVC)架构模式的实现,帮助开发者轻松地处理HTTP请求、数据绑定、视图渲染等任务。在使用Spring MVC时,依赖包的正确...
【Spring MVC + Hibernate + MySQL 整合详解】 在IT领域,Spring MVC、Hibernate和MySQL是构建Web应用程序的常用技术栈。Spring MVC作为Spring框架的一部分,提供了强大的MVC(Model-View-Controller)架构,用于...
《Spring MVC + Hibernate 实现BBS论坛系统详解》 在当今的互联网开发中,Spring MVC 和 Hibernate 是两个非常重要的框架,它们在企业级应用开发中起着关键作用。本项目"Spring MVC bbs"结合了Spring3和Hibernate,...
在现代Web应用开发中,Spring MVC作为主流的MVC框架,常常需要与各种持久层技术进行集成以提高数据处理效率。Redis,一个高性能的键值存储系统,常被用于缓存、消息队列等场景。将Spring MVC与Redis结合,可以有效...
在本项目中,我们利用了Java技术栈中的四个核心组件:Spring MVC、Spring、Hibernate以及Bootstrap,构建了一个全面的图书管理系统。这个系统旨在提供高效、用户友好的图书管理功能,涵盖了从图书入库、检索到借阅、...
《基于Spring MVC+Spring+Hibernate+Bootstrap+MySQL的考勤及薪酬管理系统详解》 在现代企业信息化管理中,考勤和薪酬管理是至关重要的部分,它们直接影响到员工的工作积极性和公司的运营效率。本文将深入探讨一个...
Spring MVC、Spring和Spring JDBC是Java开发中非常重要的三大框架,它们构成了Spring框架的核心部分,广泛应用于企业级应用开发。本实例源码旨在提供一个整合这三者的基础模板,帮助开发者理解和掌握它们之间的协同...
Spring+Spring MVC+MyBatis 框架整合案例 Spring 框架是 Java 平台上的一种开源框架,由 Rod Johnson 和 Juergen Hoellerสอง位开发者创建,于 2004 年首次发布。Spring 框架的主要目标是简化企业级应用程序的...
**Spring MVC 整合 Mybatis 知识点详解** 在现代Java Web开发中,Spring MVC 和 Mybatis 是两个非常流行的框架。Spring MVC 提供了强大的MVC架构支持,而Mybatis则是一个轻量级的持久层框架,专注于SQL映射。将两者...