jsp页面中静态文件的时间戳

在开发、调试js时,经常碰到firefox、chrome的缓存问题,有时候清空缓存还不生效,有时候还重启tomcat什么的,也麻烦。

后来想到用时间戳来区别版本,但是,又不是每次所有的代码都要更新,每次访问都用系统的时间戳不好用,缓存就成摆设了。

再后来,想到可以根据每个js文件的修改时间来设置,其实对动态脚本一窍不通,因为页面的风格就是html+ajax,冠以jsp的后缀而已。最后用土办法解决了,代码大概就是下面的内容了,getTime.jsp。

<%!
public long[] getTime(String basePath, String... files) {
	int size = files.length;
	long[] t = new long[size];
	for(int i = 0; i < size; i++) {
		t[i] = (new File(basePath + files[i])).lastModified();
	}
	return t;
}
%>

传入路径、需要获取时间戳的文件名,然后返回long类型的最后修改时间。页面代码大概如下:

<%@page contentType="text/html;charset=UTF-8" language="java" import="java.io.File" errorPage=""%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<%@include file="getTime.jsp"%>
<%
String web_path=request.getContextPath();
String realPath = application.getRealPath("/");
long t[] = getTime(realPath, "/js/common.js", "/view/frame/js/main.js");
%>
<head>
	<!-- 省略 -->
</head>
<body>
	<!-- 省略 -->
	<script type="text/javascript" src="<%=web_path%>/js/jquery-1.8.3.min.js"></script>
	<script type="text/javascript" src="<%=web_path%>/js/common.js?v=<%=t[0]%>"></script>
	<script type="text/javascript">var web_path = '<%=web_path%>' || getContextPath();</script>
	<script type="text/javascript" src="<%=web_path%>/view/frame/js/main.js?v=<%=t[1]%>"></script>
</body>
</html>

最后在页面上可以看到时间戳了。

不懂别人怎么做的。大笑暂时简单解决了问题,就是没放到项目中使用,纯属测试代码。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值