웹 페이지에서 클라이언트가 매번 서버에 액세스 할 때 일부는 서버를 반복적으로 요청할 필요가 없습니다. 예를 들어, 일부 사진, 비디오 등은 매번 요청할 필요가 없으므로 서버의 워크로드가 증가합니다. 이를 방지하기 위해 필터를 사용하여 클라이언트를 캐시하도록 설정합니다.
페이지 캐시 및 비 캐시 설정 및 HTML 페이지의 메타 역할
HTTP 1.1에서는 캐시 제어를 통해 페이지의 캐시를 제어 할 수 있습니다. 다음은 일반적으로 사용되는 몇 가지 매개 변수입니다.
캐시 없음, 브라우저 나 캐시 서버는 페이지 정보를 캐시해서는 안됩니다.
공개, 브라우저 및 캐시 서버는 모두 페이지 정보를 캐시 할 수 있습니다.
없음, 요청 및 응답 정보는 상대방의 디스크 시스템에 저장해서는 안됩니다.
클라이언트의 각 요청에 대해 프록시 서버는 서버가 캐시가 오래된 것을 확인하기를 원해야합니다.
페이지의 마지막 생성 시간 만 마지막으로 변형 된 GMT 형식;
만료 된 한계 값이 만료 된 GMT 형식은 브라우저 또는 캐시 서버 가이 시점 후 실제 서버에서 새 페이지 정보를 얻어야 함을 의미합니다.
위의 두 값은 JSP에서 문자형 GMT 형식으로 설정되며 적용 할 수 없으므로 긴 유형이 적용되도록 설정됩니다.
다음은 성분을 설정하는 필터 코드입니다.
<span style = "font-size : 24px;"> 패키지 cn.hncu.filter; import java.io.ioexception; javax.servlet.filter import; javax.servlet.filterchain import; javax.servlet.filterconfig import; javax.servlet.servletexception import; javax.servlet.servletrequest import; Javax.Servlet.ServletResponse 가져 오기; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; 공개 클래스 캐시 필터는 필터 {@override public void destroy () {} </span> <span style = "font-size : 24px;"> @override public void dofilter (servletrequest 요청, servletrepsonge 응답, 필터 체인 체인) Ioexception, servletexception {// 필터 {// 필터 {// 필터 {// 필터는 많은 기능을 가지고 있습니다. 클라이언트가 캐시를 설정하는지 여부를 설정하는 데 사용됩니다. 여기에서 응답을 사용하여 클라이언트에게 체인을 설정하도록 통지합니다 (요청, 응답); httpservletresponse res = (httpservletresponse) 응답; Res.Setheader ( "Expries", "-1"); Res.Setheader ( "Pragma", "No-Cache"); Res.SetHeader ( "캐시 제어", "No-Cache"); /*위는 캐시가 아니라고 설정할 수 있지만보다 포괄적으로 설정할 수도 있습니다. // 브라우저 측 또는 캐시 서버는 현재 페이지 정보를 캐시 할 수 없습니다. /* response.setheader ( "Pragma", "No-Cache"); response.setDateHeader ( "만료", "-1"); response.addheader ( "Cache-Control", "No-Cache"); // 브라우저 나 캐시 서버는 페이지 정보 응답을 캐시해서는 안됩니다. ADDHEADER ( "CACHE-CONTROL", "NO-STORE"); // 요청 및 응답 정보는 상대방의 디스크 응답에 저장되어야합니다. 클라이언트, 프록시 서버는 서버가 캐시가 오래된 지 여부를 확인하기를 원해야합니다. } @Override public void init (FilterConfig arg0)는 servleTeXception {}} </span> <span style = "font-size : 18px;"> </span>아래는 캐시를 설정하는 필터 파일입니다
패키지 cn.hncu.filter; import java.io.ioexception; import java.util.date; javax.servlet.filter import; javax.servlet.filterchain import; javax.servlet.filterconfig import; javax.servlet.servletexception import; javax.servlet.servletrequest import; Javax.Servlet.ServletResponse 가져 오기; import javax.servlet.http.httpservletresponse; Public Class Cachefilter2는 필터 {@override public void destroy () {} @override public void dofilter (servletrequest 요청, servletreponse 응답, 필터 체인 체인)가 ioxception, servletexception {// 필터에는 많은 기능이 있습니다. 클라이언트가 캐시를 설정하는지 여부를 설정하는 데 사용됩니다. 응답을 사용하여 클라이언트를 알리기 위해 클라이언트를 통지하여 // 이미지 및 비디오 클래스의 리소스를 활성화하기 위해 캐시를 설정합니다 (필터의 해당 인터셉트 경로 구성) // 1 일 동안 클라이언트 브라우저가 캐시에 캐시를 요구할 수 있도록) // 경로 구성 체인 (요청, 응답); // reture hteccep hteper htepronge, // returectreprestrest to htectrrest hteper hteprong. res = (httpservletresponse) 응답; 날짜 d = 새 날짜 (); 긴 시간 = d.gettime ()+60*60*24; // res.SetHeader ( "expries", ""+time); //이 방법으로 하루를 위해 캐시를 설정합니다. setDateHeader ( "expries", time); // 위의 문장과 동일/ * 날짜 날짜 = 새 날짜 (); response.setDateHeader ( "최종 수정", date.getTime ()); // 최후의 수정 : 페이지 응답의 마지막 생성 시간 .SetDateHeader ( "만료", date.getTime ()+60*60*24); // 만료 : 만료 한도 resigns.setHeader ( "Cache-control", "public"); // 캐시 제어는 페이지가 캐시인지, 공개되는지 여부를 제어합니다. 브라우저와 캐시 서버는 페이지 정보를 캐시 할 수 있습니다. 응답 .Setheader ( "Pragma", "Pragma"); // Pragma : 페이지가 캐시되어 있는지, Pragma 인 경우, 캐시가 캐시되고 캐시되지 않으며 캐시되지 않음*/} @override public void init (filterconfig arg0) servletexception {}참고 : 위의 필터 파일은 구성된 경로에 따라 필터링하려면 Web.xml에서 구성해야합니다.
위는 Javaee 필터 필터 설정이 편집기가 도입 한 인스턴스인지에 대한 자세한 설명입니다. 모든 사람에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 모든 사람에게 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!