Na página da web, quando o cliente acessa o servidor sempre, alguns deles não precisam solicitá -lo repetidamente. Por exemplo, algumas fotos, vídeos etc., não há necessidade de solicitá -lo sempre, o que aumentará a carga de trabalho do servidor. Para evitar isso, usamos filtros para definir o cliente a ser armazenado em cache.
Page Cache e configurações não cache e o papel da meta nas páginas HTML
No HTTP 1.1, o controle de cache é habilitado para controlar o cache das páginas. Aqui estão alguns parâmetros comumente usados:
Não cache, nem o navegador nem o servidor de cache devem informar a página de cache;
público, tanto o navegador quanto o servidor de cache podem cache as informações da página;
NÃO SOAS, as informações de solicitação e resposta não devem ser armazenadas no sistema de disco da outra parte;
Revalidado deve, para cada solicitação do cliente, o servidor proxy deve querer que o servidor verifique se o cache está desatualizado;
Por último modificado apenas o tempo da última geração da página, formato GMT;
Expira o valor limite expirado, o formato GMT, significa que o navegador ou servidor de cache deve obter informações de novas páginas do servidor real após esse tempo;
Os dois valores acima são definidos como o formato GMT do tipo caractere no JSP e não podem entrar em vigor, portanto o tipo longo está definido para entrar em vigor;
Aqui está o código do filtro que define o Incached:
<span style = "font-size: 24px;"> pacote cn.hncu.filter; importar java.io.ioException; importar javax.servlet.filter; importar javax.servlet.filterchain; importar javax.servlet.FilterConfig; importar javax.servlet.servletexception; importar javax.servlet.servletRequest; importar javax.Servlet.ServletResponse; importar javax.servlet.http.httpServletRequest; importar javax.servlet.http.httpServletResponse; classe pública Cachefilter implementa o filtro {@Override public void Destroy () {} </span> <span style = "font-size: 24px;"> @Override public void Dofilter (serveleTrequest Solicy, ServletResponse Respons, FilterChain) Throws IoException, servException {/ Filters Filters Muitos Muitos Muitos Muitos Funções MUITO FINAL) Muitos Muitos Funções MUITO FINALMENTO. Isso é usado para definir se o cliente define o cache. Usamos a resposta aqui para notificar o cliente para configurar o Chain.Dofilter (solicitação, resposta); HttpServletResponse res = (httpServletResponse); Res.Setheader ("Expries", "-1"); Res.Setheader ("Pragma", "sem cache"); Res.Setheader ("Cache-Control", "No-Cache"); /*O acima pode ser definido para não cache, mas também pode ser definido como mais abrangente: // O lado do navegador ou servidor de cache não tem permissão para cache as informações atuais da página. /* Response.setheader ("Pragma", "sem cache"); Response.SetDateHeader ("Expira", "-1"); Response.Addheader ("Cache-Control", "No-Cache"); // Nem o navegador nem o servidor de cache devem cache a resposta da página de informações. O servidor proxy deve querer que o servidor verifique se o cache está desatualizado; } @Override public void init (filterConfig arg0) lança servletexception {}} </span> <span style = "font-size: 18px;"> </span>Abaixo está o arquivo de filtro que define o cache
pacote cn.hncu.filter; importar java.io.ioException; importar java.util.date; importar javax.servlet.filter; importar javax.servlet.filterchain; importar javax.servlet.FilterConfig; importar javax.servlet.servletexception; importar javax.servlet.servletRequest; importar javax.Servlet.ServletResponse; importar javax.servlet.http.httpServletResponse; classe pública Cachefilter2 implementa o filtro {@Override public void Destroy () {} @Override public void Dofilter (Solicitação de servletRequest, resposta servletResponse, cadeia de filtragem) lança ioexception, servletexception {// filtros têm muitas funções. Isso é usado para definir se o cliente define o cache. Usamos a resposta para notificar o cliente para definir o cache // Defina o cache por 1 dia aqui para permitir o recurso da classe de imagem e vídeo (configure o caminho de interceptação correspondente no filtro) para exigir que o navegador do cliente cache //s de 1 dia) // interceptará o caminho da cadeia. res = (httpServletResponse) Resposta; Data d = new date (); Longo tempo = d.getTime ()+60*60*24; // Res.Setheader ("Expries", ""+time); // dessa maneira, defina cache para um dia res.SetDateHeader ("Expries", tempo); // o mesmo que a frase acima/ * * data = new Date (); Response.SetDateHeader ("Último modificado", date.gettime ()); // Último-Modificado: o tempo da última geração da página Response.SetDateHeader ("Expira", Date.GetTime ()+60*60*24); // expira: a resposta limite de expiração.setheader ("controle de cache", "público"); // Cache-Control controla se a página é armazenada em cache, público: tanto o navegador quanto o servidor de cache podem incluir informações da página de cache; Response.setheader ("Pragma", "Pragma"); // Pragma: Defina se a página está em cache, se for Pragma, é armazenada em cache e sem cache não está em cache*/} @Override public void init (filtroConfig arg0) lança servletexception {}Nota: O arquivo de filtro acima precisa ser configurado no web.xml para filtrar de acordo com o caminho configurado.
O exposto acima é a explicação detalhada sobre se a configuração do filtro Javaee é instâncias em cache introduzidas pelo editor. Espero que seja útil para todos. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a todos a tempo. Muito obrigado pelo seu apoio ao site wulin.com!