pom.xml:
<dependency>
<groupId>com.samaxes.filter</groupId>
<artifactId>cachefilter</artifactId>
<version>1.2.1</version>
</dependency>
web.xml:
<filter>
<filter-name>CacheFilterStaticContent</filter-name>
<filter-class>com.samaxes.filter.CacheFilter</filter-class>
<init-param>
<param-name>privacy</param-name>
<param-value>public</param-value>
</init-param>
<init-param>
<param-name>expirationTime</param-name>
<!-- cache for 3600(1hour)*24*30 -->
<param-value>2592000</param-value>
</init-param>
</filter>
<!-- filter mappings for cache header -->
<filter-mapping>
<filter-name>CacheFilterStaticContent</filter-name>
<url-pattern>*.js</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CacheFilterStaticContent</filter-name>
<url-pattern>*.css</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CacheFilterStaticContent</filter-name>
<url-pattern>/catalog/js/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CacheFilterStaticContent</filter-name>
<url-pattern>/catalog/images/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CacheFilterStaticContent</filter-name>
<url-pattern>/catalog/skins/themes/*</url-pattern>
</filter-mapping>