Существует несколько способов сбросить кэш в Apache Tomcat 9 без перезапуска сервера:
1. Очистка кэш-каталога: Откройте каталог Tomcat и перейдите в папку `work`. Удалите все файлы и папки в этом каталоге. Каждый контекст в Tomcat имеет свою отдельную папку в каталоге `work`, поэтому, если вы хотите сбросить кэш только для определенного контекста, удалите соответствующую папку внутри `work`.
2. Использование JMX: Если JMX включен в вашей конфигурации Tomcat, вы можете использовать JMX-консоль для сброса кэша. Зайдите в `http://localhost:8080/manager/html` и в разделе "Server Status" найдите ссылку на JMX-консоль (обычно она названа "HTML Adaptor"). Перейдите по этой ссылке и найдите операцию "clearCache" в разделе "Catalina:type=Cache". Нажмите на кнопку "Invoke" рядом с этой операцией, чтобы сбросить кэш.
3. Использование JSP-страницы: Вы можете создать специальную JSP-страницу, которая будет сбрасывать кэш при каждом своем обращении. Создайте новый файл `cache.jsp` в папке `webapps/ROOT` с содержимым:
```jsp
<%@ page language="java" %>
<% response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); %>
<% response.setHeader("Pragma", "no-cache"); %>
<% response.setDateHeader ("Expires", 0); %>
```
При доступе к этой странице будет задаваться заголовки HTTP, запрещающие кэширование. Вы можете вызывать эту страницу для сброса кэша вручную или автоматически при обновлении сайта.
4. Изменение настроек кэширования: В конфигурационном файле `conf/web.xml` Tomcat вы можете изменить настройки кэширования, например, для отключения кэширования для конкретных типов файлов или URL-адресов. Найдите соответствующую секцию `<servlet>` или `<filter>` в файле `web.xml` и настройте соответствующие атрибуты (например, `cacheTTL` или `cacheMaxSize`) для достижения требуемого поведения кэширования.
Убедитесь, что вы понимаете последствия изменения настроек кэширования и применяете эти методы с умом, чтобы избежать неожиданного поведения вашего веб-приложения.