У меня есть страница Java / Wicket, которая генерирует файл JNLP, который запускает программное обеспечение моей компании.Этот класс по желанию будет принимать некоторые параметры URL и встраивать их в качестве аргументов в JNLP.Когда пользователь запускает этот файл JNLP, клиентское приложение будет выполнять некоторые функции на основе этих параметров.Если клиентское программное обеспечение уже запущено на компьютере, при нажатии на страницу JNLP вместо этого будет попытаться передать эти параметры через удаленный вызов работающему клиенту вместо запуска новой страницы.
В этой части явозникли проблемы.В IE, Firefox и Chrome я мог открыть новый клиент, но попытка снова нажать тот же URL-адрес вместо этого вернула бы файл JNLP.Я обнаружил, что очистка кэша браузера устраняет эту проблему во всех браузерах.Кроме того, я не могу достичь точек останова в классе JNLP, что заставляет меня догадываться, что это скорее проблема с запросом, чем что-то странное с Wicket.
Я поместил следующий код в свой класс страницы, которыйextends org.apache.wicket.markup.html.WebPage :
@Override
protected void setHeaders(WebResponse response) {
getPageMap().remove(this);
HttpServletResponse httpServletResponse = response.getHttpServletResponse();
if (httpServletResponse != null) {
httpServletResponse.setDateHeader("Expires", 0);
httpServletResponse.addHeader("Cache-Control", "no-cache,no-store,private,must-revalidate,max-stale=0,post-check=0,pre-check=0");
httpServletResponse.addHeader("Keep-Alive", "timeout=3, max=993");
}
}
Похоже, это не работает, поскольку Firefox 3.6 по-прежнему кэширует результат.IE 7 будет работать, но только после попытки ссылки я создаю несколько раз.Я не очень разбираюсь в веб-разработке и Wicket, и это для меня в новинку, поэтому, возможно, мне не хватает чего-то простого.
TL; DR: Как мне получить страницу Wicket, чтобы она не кэшировалась наклиентский браузер?