На веб -странице, когда клиент каждый раз обращается к серверу, некоторым из них не нужно запрашивать его неоднократно. Например, некоторые изображения, видео и т. Д., Необходимо запрашивать их каждый раз, что увеличит рабочую нагрузку на сервера. Чтобы предотвратить это, мы используем фильтры для установки клиента для кэширования.
Кэш и настройки без кеша и роль Meta на HTML-страницах
В http 1.1 контролируется контроль кэша для управления кэшем страниц. Вот несколько часто используемых параметров:
Нет, ни браузер, ни кэш-сервер не должны кэшировать информацию о странице;
Общественный, как браузер, так и кэш -сервер могут кэшировать информацию о странице;
Без магазина, запрос и информация о ответе не должна храниться в системе дисковой системы другой стороны;
Необходимо подать заявление, для каждого запроса от клиента прокси-сервер должен хотеть, чтобы сервер проверил, что кэш не так;
Полномодировано только время последнего поколения страницы, формат GMT;
Срок действия истечения истечения срока службы, формат GMT, означает, что браузер или кэш -сервер должны получить информацию о новой странице с реального сервера после этой момента времени;
Приведенные выше два значения устанавливаются в формат GMT типа символа в JSP и не могут вступить в силу, поэтому длинный тип установлен для вступления в силу;
Вот код фильтра, который устанавливает UncaChed:
<span style = "font-size: 24px;"> package cn.hncu.filter; импортировать java.io.ioexception; Импорт javax.servlet.filter; Импорт javax.servlet.filterchain; Импорт javax.servlet.filterConfig; Импорт javax.servlet.servletexception; Импорт javax.servlet.servletrequest; Импорт javax.servlet.servletresponse; Импорт javax.servlet.http.httpservletrequest; Импорт javax.servlet.http.httpservletresponse; Общедоступный класс Cachefilter реализует фильтр {@Override public void destress () {} </span> <span style = "font-size: 24px;"> @override public void dofilter (servletrequest, сервисная реакция, отклика Filterchain). Это используется, чтобы установить, устанавливает ли клиент кэш. Мы используем ответ здесь, чтобы уведомить клиента о настройке chain.dofilter (запрос, ответ); Httpservletresponse res = (httpservletresponse) ответ; res.setheader ("Expries", "-1"); res.setheader ("pragma", "без Cache"); res.setheader ("Контроль Cache-Control", "No-Cache"); /*Приведенное выше может быть установлено, чтобы не кеш, но также можно установить, чтобы быть более полным: // Сторона браузера или кэш -сервер не разрешается кэшировать информацию о текущей странице. /* response.setheader ("pragma", "без Cache"); response.setDateHeader («истекает», «-1»); response.addheader ("Cache-Control", "No-Cache"); // Ни браузер, ни сервер Cache не должны кэш-страницы. Прокси -сервер должен хотеть, чтобы сервер проверил, не устарел ли кэш; } @Override public void init (filterConfig arg0) Throws ServletException {}} </span> <span style = "font-size: 18px;"> </span>Ниже приведен файл фильтра, который устанавливает кэш
Пакет Cn.hncu.filter; импортировать java.io.ioexception; импортировать java.util.date; Импорт javax.servlet.filter; Импорт javax.servlet.filterchain; Импорт javax.servlet.filterConfig; Импорт javax.servlet.servletexception; Импорт javax.servlet.servletrequest; Импорт javax.servlet.servletresponse; Импорт javax.servlet.http.httpservletresponse; Открытый класс CacheFilter2 реализует фильтр {@Override public void destress () {} @Override public void dofilter (запрос ServletRequest, ответ verletresponse, цепочка FilterChain). Выбрасывает ioException, ServletException {// Фильтры имеют много функций. Это используется, чтобы установить, устанавливает ли клиент кэш. Мы используем ответ для уведомления клиента, чтобы установить кэш // Установить кэш для 1 дня здесь, чтобы включить ресурс изображения и класса видео (настройка соответствующего пути перехвата в фильтре), чтобы потребовать от клиентского браузера кэш в течение 1 дня) // Перехватчик настройки цепочки. res = (httpservletresponse) ответ; Дата D = новая дата (); Давно = d.gettime ()+60*60*24; // res.setheader ("expries", ""+time); // таким образом, установите кэш на один день res.setDateHeader ("expries", time); // такая же, как приведенное выше предложение/ * * date date = new Date (); response.setDateHeader («Последний модифицированный», date.getTime ()); // Последняя модифицированная: время последнего поколения ответа страницы.setDateHeader («истекает», date.getTime ()+60*60*24); // истекает: отклик лимита истечения. // управление кэшем управляет независимо от того, кэшируется ли страница, публичная: как браузер, так и сервер кэша могут кэш-страницы; response.setheader ("Pragma", "Pragma"); // Pragma: установить, кэшируется ли страница, если это прагма, она кэширована, и без кеша не кэшируется*/} @Override public void init (filterConfig arg0), бросает ServletException {}Примечание. Приведенный выше файл фильтра должен быть настроен в web.xml для фильтрации в соответствии с настроенным путем.
Выше приведено подробное объяснение того, является ли настройка фильтра Javaee Filter кэшированным экземпляром, введенными редактором. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!