首页 > 解决方案 > 如何在浏览器的 JSP 页面中强制重新读取属性文件

问题描述

看起来浏览器正在缓存从属性文件中读取的值。我不想通过电子邮件向网页的所有用户发送电子邮件,要求他们清除缓存,因为属​​性发生了变化。肯定有办法强制重读吗?我不介意每次打开页面时都正确读取,但在控制台上我可以看到 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 的值时,它显示的是“旧”值,而不是我刚刚将其更改为的值。当我清除浏览器的缓存时,我只会看到正确的值。

标签: javahtmljsp

解决方案


推荐阅读