2010-04-08 8 views
5

코드가 JSP 인 코드를 바꿀 때 Java 서버가 있고 브라우저에서 페이지를 다시 호출하면 변경 사항이 표시되지 않고 서버가 이전 버전을 반환합니다. JSP.JSP 페이지가 캐시 됨, 변경할 수 없습니다.

이유는 무엇입니까? 상단에

설정 web.xml에 <context-param> 태그

<context-param> 
    <param-name>weblogic.jsp.pageCheckSeconds</param-name> 
    <param-value>0</param-value> 
</context-param> 

당신에서 JSP 페이지 :

+0

IDE를 사용하고 있습니까? – BalusC

+0

앱을 전쟁으로 배포합니까? –

답변

11

The Jasper How-toconf/web.xml에 있음을 알려줍니다, org.apache.jasper.servlet.JspServlet의 경우 :

  • development - Jasper가 개발 모드에서 사용됩니까? true 인 경우 JSP가 수정 여부를 확인하는 빈도는 modificationTestInterval 매개 변수를 통해 지정할 수 있습니다. true 또는 false, 기본값은 true입니다.
  • checkInterval - 개발이 false이고 checkInterval이 0보다 큰 경우 백그라운드 컴파일이 사용됩니다. checkInterval은 JSP 페이지 (및 종속 파일)를 다시 컴파일해야하는지 확인하기위한 점검 사이의 시간 (초)입니다. 기본값은 0 초입니다.

The <Context> element에는 다음과 같은 속성이 있습니다

  • reloadable을 - 당신이 파일
  • antiResourceLocking
  • 을 JSP에 추가하여 클래스와 libs와의 핫 배포를 원하는 경우 true로 설정 - 거짓이어야한다

위의 내용은 모두 서버에 대한 것입니다. 클라이언트 쪽 캐싱은 새로운 버전의 페이지를 볼 수없는 또 다른 이유입니다. CTRL + R/CTRL + F5를 누르기 만하면됩니다.

캐시 전략을 결정하는 것은 다른 내용이며 다른 주제, 브라우저에서 캐시 할 리소스 및 캐시 시간을 결정하는 것과는 다른 주제입니다. 캐시 헤더 (ExpiresCache-Control (및 Pragma)를 응용 프로그램의 공통 위치에 두어 신속하게 변경할 수 있어야합니다.

-1

당신은이 일을 시도 할 수 있습니다

<% 
response.setHeader("Cache-Control","no-cache"); //HTTP 1.1 
response.setHeader("Pragma","no-cache"); //HTTP 1.0 
response.setDateHeader ("Expires", 0); 
%> 
+0

Weblogic? OP는 Tomcat을 사용하고 있습니다. 두 번째 부분은 클라이언트 측 문제 만 수정합니다. – BalusC

4

Tomcat WebApp Manager를 사용하여 응용 프로그램을 중지하고 tomcat 디렉토리에서 응용 프로그램의 "work"폴더를 삭제할 수도 있습니다. 이렇게하면 Tomcat이 새 JSP를 사용하여 캐시 파일을 다시 작성하게됩니다. 는/usr/아파치 - 톰캣-XXX/일/카탈/로컬 호스트/

그냥 앱의 이름으로 폴더를 삭제하고 다시 시작 :

캐시 파일이있는 폴더의 경로는 다음과 같이이다 앱.

관련 문제