Hoe om kas binne 'n JSP-bladsy te deaktiveer
-
03-07-2019 - |
Vra
Ek verstaan daar is 'n HTTP-reaksie-opskrif-instruksie om bladsykas te deaktiveer:
Cache-Control:no-cache
Ek kan die kopskrif met "hand" verander:
<%response.addHeader("Cache-Control","no-cache");%>
Maar is daar 'n "mooi" manier om die JSP-tolk hierdie koplyn in die bedienerantwoord te laat terugstuur?
(Ek het die <%@page ...%>-aanwysing nagegaan.Dit lyk asof daar niks so is nie.)
Oplossing
Voeg ook by
response.addHeader("Expires","-1"); response.addHeader("Pragma","no-cache");
na jou kopskoot en gee dit 'n kans.
Ander wenke
As jy 'n servlet gebruik, dan glo ek wat jy in die vraag geplaas het, sou die korrekte benadering wees.Ek is nie bewus van enige manier om dit in die JSP te doen nie.
<?xml version="1.0"?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
<jsp:scriptlet><![CDATA[
response.setHeader("Cache-Control", "no-cache");
]]></jsp:scriptlet>
</jsp:root>
Jy moet die antwoordopskrif binne sit <jsp:root />
.Ek sal ook aanbeveel dat dit vanaf jou servlet gestuur word in plaas van JSP-bladsy.
IIRC kan sommige blaaiers die kasbeheerinstellings in sommige kontekste ignoreer.Die 'veilige' oplossing hiervoor was om altyd 'n bladsy te kry (selfs 'n AJAX-stuk) met 'n nuwe navraagstringveranderlike (soos die tyd.)