
특정 페이지에서 데이터를 post방식으로 전송 후 다음 페이지로 전환 했는데, 사용자가 뒤로 가기 버튼을 누르는 경우 이전 페이지에 캐시된 데이터가 남아있는 경우가 있다. 아니면 submit 후 에는 못들어가게 막아야 되는 상황이 있다.
spring에서 interceptor를 통해 캐시를 관리 할 수 있다.
servlet-context.xml을 설정한다.
1. 모든 페이지에서 post방식으로 전송 한 경우 뒤로가기 버튼 누르면 만료된 페이지로 뜸 ( no cache)
<interceptors>
<beans:bean id="webContentInterceptor" class="org.springframework.web.servlet.mvc.WebContentInterceptor">
<beans:property name="cacheSeconds" value="0"/>
<beans:property name="useExpiresHeader" value="true"/>
<beans:property name="useCacheControlHeader" value="true"/>
<beans:property name="useCacheControlNoStore" value="true"/>
</beans:bean>
</interceptors>
2. 특정 url만 캐시사용안함 (만료 시킴)
<interceptors>
<interceptor>
<mapping path="/somePath/someUrl"/>
<beans:bean id="webContentInterceptor" class="org.springframework.web.servlet.mvc.WebContentInterceptor">
<beans:property name="cacheSeconds" value="0"/>
<beans:property name="useExpiresHeader" value="true"/>
<beans:property name="useCacheControlHeader" value="true"/>
<beans:property name="useCacheControlNoStore" value="true"/>
</beans:bean>
</interceptor>
</interceptors>