일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- taglib 만들기
- javascript Camel
- jquery_api #jquery #api
- 스킵 네비게이션
- 여러줄 한줄로
- JSP Standard Tag Library (JSTL) Tutorial
- 시퀀스 초기화 프로시져
- jQuery 백스페이스
- 허드슨 포트 변경
- Spring Annotation
- jquery_cheat_sheet #jquery_quick_api_reference
- i_tail
- 트리거 이벤트
- eclipse properties
- eclipse 다국어
- eclipse 폰트
- 근무날짜 경력계산
- DIV 팝업 이외 영역 클릭 시 팝업 닫기
- javascript 낙타
- ajax 배열 파라미터
- 뒤로가기 방지
- 화면보호기 실행 방지
- 폴더만 남기고 파일만 삭제
- #오라클 데이터 복구
- 탭과 클릭 focus 이벤트 구분
- 엑셀 UPDATE
- 전화번호 형식 자동 변환
- ajax 배열
- 팝업 종료
- css 말줄임
Archives
- Today
- Total
Hi~ Summers!!
각 언어별 cache를 소멸시켜 뒤로가기 기능 막기 본문
JSP에서 Cache 소멸하는 방법
이것은 JSP 코딩할때 가끔씩 유용하게 쓰입니다.
캐쉬된 페이지때문에 가끔 웹브라우저 재시동하거나, 웹서버를 재 시동하는 경우가 있으셨을텐데... 그럴 경우에 쓰시면 항상 최신의 페이지를 캐쉬없이 보여줍니다.
그리고, 어떠한 데이터가 넘어가는 경우에만 '만료된 페이지입니다' 라는 메시지를 보여주게 됩니다.
(실전에서도 써야할 경우가 있습니다.)
HTML
<META http-equiv="Expires" content="-1">
<META http-equiv="Pragma" content="no-cache">
<META http-equiv="Cache-Control" content="No-Cache">
ASP
<%
Response.Expires = 0
Response.AddHeader "Pragma","no-cache"
Response.AddHeader "Cache-Control","no-cache,must-revalidate"
%>
JSP
<%
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragma","no-cache");
response.setDateHeader("Expires",0);
if (request.getProtocol().equals("HTTP/1.1"))
response.setHeader("Cache-Control", "no-cache");
%>
PHP
<?
header("Pragma: no-cache");
header("Cache-Control: no-cache,must-revalidate");
?>
하지만 테스트 해본 결과 제대로 작동이 되지 않고
뒤로가기 버튼 클릭 시 이전 페이지로 이동되었습니다.
그래서 여기저기 검색하다가 알게 된 하나의 사실...
하나의 설정이 더 필요하다는 것을 알게 되었습니다.
Struts Framework 사용시에는 아래와 같은 설정을 꼭 해주셔야 위의 내용이 적용이 됩니다.
( 제 경험상으로는 적용이 되었습니다. ㅎㅎ;;; )
processNoCache ()는 struts-config.xml설정파일의 <controller>설정에서 nocache attribute가 true로 설정되어 있을 경우 호출된다. 만약 true라면 response객체의 header에 Pragma, Cache-Control, Expires가 추가되게 된다. 많은 개발자들이 Cache때문에 고생한적이 있을 것이다. 따라서 Cache를 없애기 위하여 모든 페이지 앞부분에 다음을 추가한 경험이 있을 것으로 생각된다.
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "No-cache");
response.setHeader("Expires", "1");
스트러츠 Framework에서는 struts-config.xml설정파일에 단지 true로 설정해주면 Cache가 적용되지 않는다.
<controller nocache="true" />
라는 설정을 struts-config.xml에 추가해 주면 됩니다.
참고로 아래에 스트러츠 핵심 클래스 다이어그램을 첨부합니다.
클릭하시면 제대로 볼 수 있어요. ^^
스트러츠 핵심 클래스 다이어 그램
스트러츠 Framework의 중심이 되는 클래스들의 관계를 보여주고 있는 클래스 다이어그램
스트러츠 Framework의 중심이 되는 클래스들의 관계를 보여주고 있는 클래스 다이어그램
Comments