Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在浏览器上强制重新读取JSP页面中的属性文件_Java_Html_Jsp - Fatal编程技术网

Java 如何在浏览器上强制重新读取JSP页面中的属性文件

Java 如何在浏览器上强制重新读取JSP页面中的属性文件,java,html,jsp,Java,Html,Jsp,看起来浏览器正在缓存从属性文件读取的值。我不想给该网页的所有用户发送电子邮件,要求他们清除缓存,因为某个属性发生了更改。肯定有办法迫使读者重读?我不介意每次打开页面时都进行正确的读取,但是在控制台上我可以看到Tomcat服务器确实读取了正确的(新的)值,所以它一定是浏览器缓存。 这是我的代码,标准java,在一个名为MyUtils.java的文件中: /** * @return Properties from properties file set in folder: /tomcat/con

看起来浏览器正在缓存从属性文件读取的值。我不想给该网页的所有用户发送电子邮件,要求他们清除缓存,因为某个属性发生了更改。肯定有办法迫使读者重读?我不介意每次打开页面时都进行正确的读取,但是在控制台上我可以看到Tomcat服务器确实读取了正确的(新的)值,所以它一定是浏览器缓存。 这是我的代码,标准java,在一个名为MyUtils.java的文件中:

/**
 * @return Properties from properties file set in folder: /tomcat/conf/TSprops.properties
 */
public Properties getProperties() {
    String serverRoot = System.getProperty("catalina.home");
    String propsFile=serverRoot+"/conf/TSprops.properties"; 
    try {
        FileInputStream inp = new FileInputStream( propsFile );
        Properties props = new Properties();
        props.load( inp );
        inp.close();
        return props;
    } catch (Exception e) {
        return null;
    }
}
在我的.JSP文件中,我有:

    <!doctype html>
    <jsp:useBean id="ut" scope="page" class="MyUtils" />
    <html>
    <%
        Properties props = ut.getProperties();
        String NBH=props.getProperty("NextBankHol", "");
    %>
    <body>
    Next Bank Holiday: <%=NBH%>

下一个银行假期:
当我显示NBH的值时,它显示的是“旧”值,而不是我刚刚更改的值。
只有在清除浏览器缓存时,我才能看到正确的值。

属性是服务器端构造,与客户端无关。更可能的情况是,整个生成的页面都被缓存了。您可以使用浏览器的开发人员工具验证这一点。使用开发工具,您还可以检查HTTP缓存头是否设置正确。根据经验,不应允许缓存生成的HTML页面。看,你完全正确。我在客户端有一个部分,这实际上是可行的,另一个部分是通过servlet访问并缓存的。令人恼火的是,我无法用servlet解决缓存问题,但通过将重要的代码从servlet移动到JSP解决了这个问题,现在可以工作了。谢谢你的评论,这让我又看了一遍。