Tôi có trang Java/Wicket tạo tệp JNLP khởi chạy phần mềm của công ty tôi. Lớp này sẽ tùy chọn lấy một số tham số url và nhúng chúng làm đối số trong JNLP. Khi người dùng khởi chạy tệp JNLP này, ứng dụng khách sẽ thực hiện một số chức năng dựa trên các tham số đó. Nếu phần mềm máy khách đang chạy trên máy, nhấn vào trang JNLP thay vào đó sẽ cố gắng nạp các thông số này thông qua một cuộc gọi từ xa đến máy khách đang chạy thay vì khởi chạy một trang mới.Java/Wicket - Làm cách nào để dừng trình duyệt khỏi các trang lưu trong bộ nhớ cache?
Phần này là nơi tôi đang gặp sự cố. Trên IE, Firefox và Chrome tôi có thể mở một ứng dụng khách mới, nhưng cố gắng nhấn lại cùng một URL, thay vào đó sẽ trả về một tệp JNLP. Tôi thấy rằng việc xóa bộ nhớ cache của trình duyệt sẽ khắc phục sự cố này trên tất cả các trình duyệt. Ngoài ra, tôi dường như không thể đạt được điểm ngắt trong lớp JNLP, điều này thực thi linh cảm của tôi rằng đây là vấn đề với yêu cầu hơn là một điều gì đó kỳ lạ với Wicket.
tôi đặt đoạn mã sau vào lớp trang của tôi, kéo dài 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");
}
}
này dường như không làm việc, như Firefox 3.6 vẫn có vẻ để lưu trữ kết quả. IE 7 sẽ hoạt động nhưng chỉ sau khi thử liên kết tôi tạo vài lần. Tôi không biết nhiều về phát triển web và Wicket và điều này là mới đối với tôi vì vậy có thể tôi đang thiếu một cái gì đó đơn giản.
TL; DR: Làm thế nào để tôi có được một trang Wicket để không lưu vào bộ nhớ cache trên trình duyệt của khách hàng?
bạn đã thử thêm '
' vào đánh dấu trang chưa? – Gytis