1.页面开发时,在页面中对同一url链接可以多次访问,这时不同的浏览器可能处理方式不同,如IE(我测试是用的是IE11)可能是浏览器本身缓存的缘故,会拒绝访问。

这时我得解决办法是,在每一个url访问时后面多加一个时间搓的参数,如

var timestamp = new Date().getTime();
window.location.href ="index?ts="+timestamp;

这样可以有效的防止一下现象。

同时还有一种方法同样可以解决,因为我的项目中用了jquery,所以我在每个页面的js中加上如下语句

$.ajaxSetup ({
    cache: false //设置成false将不会从浏览器缓存读取信息
});

2.在jsp页面开发时,会遇到页面跳转路径的问题,如相对路径、绝对路径。因为jsp的访问时通过servlet或是用struct的action等时,这样和本地访问或是直接访问页面的路径不一样了。

所以我通过用basepath的方式解决访问路径混乱的问题。

首页,我在公用的jsp头文件会加上下面的话

 <%  
 String path = request.getContextPath();  
 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path;  
 System.out.println("basePath===>>"+basePath);
 %> 

上面的语句应该输出http://ip:端口,作为basepath

然后可以在<head>标签中加上

<base href="<%=basepath %>" />

或是

<input type="hidden" id="basepath" value="<%=basePath %>" />

是别的页面可以获取到basepath的值。这里我推荐用后一种方法。

这时,在jsp中如果想跳转页面或是请求action时,就应该

var timestamp = new Date().getTime();
var basepath = $("#basepath").val();
window.location.href = basepath+"/doIndex?ts="+timestamp;

3.如何用获取base标签中href的值

var href = $("base")[0].href

hellowoody
118 声望10 粉丝

个人网站:woodyhello.com