问题
I understand there is a HTTP response header directive to disable page caching:
Cache-Control:no-cache
I can modify the header by "hand":
<%response.addHeader("Cache-Control","no-cache");%>
But is there a "nice" way to make the JSP interpreter return this header line in the server response?
(I checked the <%@page ...%> directive. It seems there is nothing like that.)
回答1:
Also add
response.addHeader("Expires","-1"); response.addHeader("Pragma","no-cache");
to your headers and give that a shot.
回答2:
If you were using a servlet, then I believe what you posted in the question would be the correct approach. I'm not aware of any way to do this in the JSP.
回答3:
<?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>
You must put the response header inside <jsp:root />
. Also, I would instead recommend it sending this from your servlet instead of JSP page.
回答4:
IIRC some browsers may ignore the cache control settings in some contexts. The 'safe' workaround for this was to always get a page (even an AJAX chunk) with a new query string variable (like the time.)
来源:https://stackoverflow.com/questions/161937/howto-deactivate-caching-inside-a-jsp-page