소위 브라우저 캐싱은 웹 페이지에 처음 액세스 할 때 브라우저 가이 웹 페이지를 로컬로 캐시한다는 것을 의미합니다. 다음에 캐시 된 웹 페이지에 액세스하면 브라우저는 네트워크에서 얻지 않고도 해당 웹 페이지의 컨텐츠를 직접 읽습니다.
브라우저에서 제공하는 캐싱 함수는 웹 페이지의 로딩 속도를 효과적으로 향상시킬 수 있지만 실시간 업데이트가 필요한 일부 웹 페이지의 경우이 캐싱 메커니즘은 웹 페이지의 일반적인 표시에 영향을 미칩니다. 다행스럽게도 HTTP 응답 메시지 헤더에는 클라이언트 브라우저의 캐시 기능을 끄는 세 개의 필드가 있습니다. 다음 세 가지 진술은이 세 필드를 사용하여 브라우저의 캐시를 닫습니다.
response.setDateHeader ( "expires", 0); response.setHeader ( "캐시 제어", "no-cache"); response.setheader ( "Pragma", "no-cache");
위의 3 개의 HTTP 응답 메시지 헤더 필드는 모두 브라우저 캐시를 닫을 수 있습니다. 그러나 모든 브라우저 가이 3 개의 응답 메시지 헤더 필드를 지원하는 것은 아니므로 위의 3 개의 응답 메시지 헤더 필드를 사용하여 브라우저의 캐시를 닫는 것이 가장 좋습니다.
예 : 캐시 현재 웹 페이지에서 브라우저를 비활성화합니다
1. 예제 설명
이 프로그램은 브라우저 캐시가 닫히지 않고 브라우저 캐시가 닫힐 때 양식을 통해 요청 메시지를 제출할 때 성능을 보여줍니다.
2. 캐시 클래스를 작성하십시오
브라우저 캐시는 캐시 클래스의 위의 3 개의 응답 메시지 헤더 필드를 사용하여 닫히고 캐시를 닫고 캐시를 닫지 않는 효과를 테스트하기 위해 클라이언트에게 HTML 코드를 출력합니다. 캐시 클래스의 구현 코드는 다음과 같습니다.
공개 클래스 캐시는 httpservlet {public void service (httpservletrequest request, httpservletreponse response)를 servletexception, ioexception {response.setContentType ( "text/html; charset = utf-8"); 문자열 cache = request.getParameter ( "캐시"); if (cache! = null) {if (cache.equals ( "false")) {// 브라우저 캐시 응답을 닫습니다. Response.SetHeader ( "Cache-Control", "No-Cache"); Response.SetHeader ( "Pragma", "No-Cache"); }} // html 코드 문자열 html = "<form id = 'form', action = 'test'메소드 = 'post'>" + "이름 : <input type = 'text'name = 'name'/>" + "<입력 유형 = 'value ='제출 '/>" + "</form>"; printwriter out = response.getwriter (); out.println (html); // 클라이언트에 html 코드를 출력}}위의 코드에서 볼 수 있듯이 캐시 요청 매개 변수 값이 False 일 때 브라우저의 캐시가 닫힙니다.
3. 캐시 클래스를 구성합니다
캐시 클래스의 구성 코드는 다음과 같습니다.
<Servlet> <servlet-name> 캐시 </servlet-name> <servlet-class> 챕터 5.cache </servlet-class> </servlet> <servlet-mapping> <servlet-name> cache </servlet-name> <Url-pattern>/cache </url-pattern> </servlet-mapping>
4. 브라우저 캐시가 닫히지 않은 상황을 테스트하십시오.
브라우저 주소 표시 줄에 다음 URL을 입력하십시오.
http : // localhost : 8080/demo/cache? cache = true
[이름] 텍스트 상자에 문자열을 입력하고 [제출] 버튼을 클릭하십시오. 현재 브라우저에는 예외가 표시됩니다 (이 예외는 존재하지 않는 제출 된 테스트로 인해 발생하므로 걱정할 필요가 없습니다)를 클릭하여 브라우저의 리턴 버튼을 클릭하여 지금 데이터를 입력 한 페이지로 돌아갑니다. 우리는 지금 막 입력 한 문자열이 여전히 존재한다는 것을 알 수 있습니다. 즉, 반환 할 때 브라우저는 서버에서 페이지를 되찾지 않고 로컬 캐시에서 현재 페이지를 다시로드합니다.
5. 브라우저 캐시를 닫는 상황을 테스트하십시오
브라우저 주소 표시 줄에 다음 URL을 입력하여 브라우저 캐시를 닫습니다.
http : // localhost : 8080/demo/cache? cache = false
이전 단계에서 제출하고 반환 한 후 지금 입력 한 데이터가 사라 졌다는 것을 알았습니다. 즉, 브라우저 캐시를 닫은 후 브라우저는 다시 돌아올 때마다 서버에서 현재 페이지를 되 찾을 수 있습니다. 따라서 현재 페이지는 항상 초기 값을 유지합니다.
6. 절차 요약
브라우저 캐시를 닫을 때 가능한 한 대부분의 브라우저에서 효과적인지 확인하기 위해 위의 3 개의 HTTP 응답 메시지 헤더 필드를 사용하여 동시에 브라우저 캐시를 닫는 것이 좋습니다.
요약
위의 것은 현재 웹 페이지를 캐시하는 브라우저를 금지하는 Javaweb의 방법입니다. 모든 사람에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 모든 사람에게 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!