Так называемое кэширование браузера означает, что при первом доступе к веб-странице браузер будет кэшировать эти веб-страницы локально. Когда вы получаете доступ к этим кэшированным веб -страницам в следующий раз, браузер будет напрямую читать содержание этих веб -страниц с локальной области, не получая их из сети.
Хотя функция кэширования, предоставленная браузером, может эффективно улучшить скорость загрузки веб-страниц, для некоторых веб-страниц, которые требуют обновлений в реальном времени, этот механизм кэширования повлияет на нормальное отображение веб-страниц. К счастью, в заголовке сообщений HTTP есть три поля, чтобы отключить функцию кэша браузера клиента. В следующих трех операторах используются эти три поля для закрытия кэша браузера:
response.setDateHeader («истекает», 0); response.setheader ("Cache-Control", "No-Cache"); response.setheader ("pragma", "без Cache");Хотя приведенные выше три поля заголовка ответа HTTP могут закрыть кэш браузера. Тем не менее, не все браузеры поддерживают эти три поля заголовка ответных сообщений, поэтому лучше всего использовать три вышеуказанные поля заголовка ответных сообщений, чтобы закрыть кэш браузера.
Пример: отключить браузеры с текущих веб -страниц кэша
1. Пример описания
Эта программа демонстрирует производительность при отправке сообщений запросов через форму, когда кэш браузера не закрыт, а кэш браузера закрыт.
2. Напишите класс кеша
Кэш браузера закрыт с использованием трех вышеуказанных полей заголовка ответных сообщений в классе кэша и выводит кусок HTML -кода клиенту, чтобы проверить эффект закрытия кэша и не закрывать кэш. Код реализации класса кэша выглядит следующим образом:
Открытый класс Cache Extens httpservlet {public void service (httpservlectrequest, httpservletresponse response) Throws ServletException, ioException {response.setContentType ("text/html; charset = utf-8"); String cache = request.getParameter ("cache"); if (cache! = null) {if (cache.equals ("false")) {// закройте ответ кэша браузера.setDateHeader ("истекает", 0); response.setheader («Контроль кэша», «без каша»); response.setheader ("pragma", "без Cache"); }} // определить html -кодовую строку html = "<form id = 'form', action = 'test' method = 'post'>" + "name: <input type = 'text' name = 'name'/>" + "<input type = 'vade' value = 'upport'/>" + "</form>"; Printwriter Out = response.getWriter (); out.println (html); // Вывод HTML -код клиенту}}Как видно из приведенного выше кода, кэш браузера закрыт, когда значение параметра запроса кэша является false.
3. Настройка класса кэша
Код конфигурации класса кэша выглядит следующим образом:
<servlet> <servlet-name> cache </servlet-name> <vervlet-class> gul5.cache </servlet> </servlet> <servlet-mapping> <servlet-name> cache </servlet-name> <url-pattern>/cache </url-pattern> </servlet> <url-pattern>/cache </url-pattern>
4. Проверьте ситуацию, когда кэш браузера не закрыт
Введите следующий URL в адресную строку браузера:
http: // localhost: 8080/demo/cache? cache = true
Введите любую строку в текстовом поле [name] и нажмите кнопку [Отправить]. В настоящее время браузер отобразит исключение (это исключение вызвано отправленным тестом, которого не существует, поэтому нам не нужно беспокоиться об этом), а затем нажимать кнопку возврата браузера, чтобы вернуться на страницу, где данные были введены только сейчас. Мы видим, что строка вступила только сейчас, все еще существует. Это означает, что при возвращении браузер не восстанавливает страницу с сервера, а перезагружает текущую страницу из локального кеша.
5. Проверьте ситуацию закрытия кеша браузера
Введите следующий URL в адресную строку браузера, чтобы закрыть кэш браузера:
http: // localhost: 8080/demo/cache? cache = false
Отправьте и верните на предыдущем шаге и обнаружили, что введенные данные только сейчас исчезли. Это означает, что после закрытия кэша браузера браузер всегда восстанавливает текущую страницу с сервера каждый раз, когда он возвращается. Следовательно, текущая страница всегда поддерживает начальное значение.
6. Резюме процедуры
При закрытии кеша браузера, чтобы убедиться, что он как можно больше в большинстве браузеров, я рекомендую использовать три вышеуказанные поля заголовка ответных сообщений HTTP, чтобы одновременно закрыть кэш браузера.
Суммировать
Выше приведено метод того, что Javaweb запрещает браузерам кэшировать текущие веб -страницы. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!