본문 바로가기
Middleware(WAS)/Java

JSP Cache

by 노쿄 2026. 4. 16.

1. 현상

일부 사용자 PC에서만 간헐적으로 발생하고, Ctrl+Shift+R(강력 새로고침) 여러 번 수행 시 정상화

 

2. 설정

weblogic.xml에 jsp page-check-seconds 1초 적용

 

→ WebLogic의 JSP 컴파일 및 반영 자체는 정상적으로 이루어지고 있는 것으로 보임

 

3. 원인 추측

서버의 JSP 반영 문제라기보다는, 클라이언트(브라우저) 또는 중간 경로(IIS/Proxy)에서 이전 결과물을 캐싱하고 있어 발생하는 현상으로 추측

- 사용자 브라우저 캐시: 브라우저가 JSP 출력 결과나 연결된 정적 리소스를 서버에 요청하지 않고 로컬 저장소에서 불러오는 경우
- IIS 및 Proxy 캐시: WebLogic 앞단의 IIS 서버가 변경 전 데이터를 보관하고 있다가 사용자에게 전달

 

※ 현재 확인 범위에서는 해당 JSP가 내부적으로 XML 및 관련 라이브러리 중심으로 동작하고 있어, JS/CSS 등 정적 리소스 불일치보다는 응답 캐시 영향 가능성이 더 높은 것으로 보임

 

4. 조치 방안 3가지

[조치 1 - WLS Plug-in no-cache header 설정 / Apache, OHS] (권장)

Directory, VirtualHost에 설정 또는 httpd.conf에 글로벌 변수 설정

<Directory>
    ...
    # Cache - Static Resource
    Header Set Pragma "no-cache"
    Header Set Expires "Thu, 1 Jan 1970 00:00:00 GMT"
    Header Set Cache-Control "max-age=0,no-store,no-cache,must-revalidate"
    Header Unset ETag
    FileETag None
</Directory>

또는
... (httpd.conf)
Header Set Pragma "no-cache"
Header Set Expires "Thu, 1 Jan 1970 00:00:00 GMT"
Header Set Cache-Control "max-age=0,no-store,no-cache,must-revalidate"
Header Unset ETag
FileETag None

 

[조치 2 - 버전 관리로 정적 파일 캐시 사용 방지]

이번 경우는 아니지만, js나 css와 같은 정적 리소스를 변경해도 캐시 문제로 이전 페이지가 보이는 경우가 있다.

<link rel="stylesheet" type="text/css" href="test.css?version=20260416">

 

[조치 3 - 특정 JSP에 no-cache 설정]

  • 해당 JSP 파일 상단에 아래의 캐시 방지 헤더 추가를 권고드립니다.
    이 설정은 브라우저 및 중간 서버(Proxy, IIS 등)가 해당 페이지를 저장하지 않도록 하여, 매 요청 시 최신 데이터를 직접 받아오도록 합니다.
<%
  response.setHeader("Cache-Control","no-cache, no-store, must-revalidate");
  response.setHeader("Pragma","no-cache");
  response.setDateHeader("Expires",0);
%>
<!DOCTYPE html>
<html>

</html>

 

[조치 4 - IIS 응답 헤더 설정] (권장X)

1) HTTP 응답 헤더 > 일반적인 헤더 설정: 웹 콘텐츠 만료(즉시 만료)

 


2) web.config 확인

 

 

'Middleware(WAS) > Java' 카테고리의 다른 글

Server Performance Stats  (0) 2026.02.23
WAR vs JAR  (0) 2026.02.20
[Database] Connection Pool, DataSource  (0) 2023.10.24
Thread 및 Thread Dump  (0) 2023.08.29