java - 如何在浏览器的 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 的值时,它显示的是“旧”值,而不是我刚刚将其更改为的值。当我清除浏览器的缓存时,我只会看到正确的值。
解决方案
推荐阅读
- azure - 名称服务器 ns3-02.azure-dns.org。应该是正确的格式
- c++ - 具有结构的 glGetUniformLocation 问题
- c# - LiteDB.LiteException:文件不是有效的 LiteDB 数据库格式或包含无效的密码
- php - 如何在php中显示当前日期?
- javascript - REACT NATIVE:滚动视图不断弹回顶部不滚动
- pine-script - tradingview pinescript 中的输入“语句块”错误不匹配
- python - ImportError: cannot import name 'config' & 'module' object is not callable using PostgreSQL & Python
- c - C中的整数到二进制
- javascript - 使用 javascript 将网页滚动到给定位置
- sql - 我想写一个查询,我只能选择特定的行,并想忽略 SQL 中的一些不同的行