当前位置: 技术问答>java相关
这个页面缓存问题大家应该遇到过!!!!!!!!!!!!!!!
来源: 互联网 发布时间:2015-10-31
本文导语: 先给出我的代码: String uid = (String)session.getValue("uid") ; String pwd = (String)session.getValue("pwd") ; if (uid == null || uid == "" || pwd == null || pwd == "") { response.sendRedirect("state.jsp?state=0"); ...
先给出我的代码:
String uid = (String)session.getValue("uid") ;
String pwd = (String)session.getValue("pwd") ;
if (uid == null || uid == "" ||
pwd == null || pwd == "") {
response.sendRedirect("state.jsp?state=0");
return;///如果session中没有登陆信息,视为过期或没登陆,就看不到该页面
}
if (ldapapi.IsUser()) {
response.sendRedirect("state.jsp?state=1");
return;///如果仅仅是用户而不是管理员,看不到该页面.
现在我以管理员登陆,能看到该页面,然后退出,以一般用户登陆,因为菜单不会给出该页的连接地址(管理员的菜单有该页地址) 所以我直接在URL中输入地址,居然看到了该页面!
我刷新,好了,看到的是重定向的那个报错页面,是一般用户应该看到的.
现在我又退出,以管理员登陆,到该页面一看,居然是钢材用户看到的报错页面!
我刷新,好了,又能看到该页面了.
结论是:无论我以什么身份登陆,只要我登到某一页,看到的是该地址在本机的缓存页面,也就是上次看到的画面,刷新后才到服务器重读验证,这个问题怎么解决???
让我不用刷新就能看到正确页面???????????????????
String uid = (String)session.getValue("uid") ;
String pwd = (String)session.getValue("pwd") ;
if (uid == null || uid == "" ||
pwd == null || pwd == "") {
response.sendRedirect("state.jsp?state=0");
return;///如果session中没有登陆信息,视为过期或没登陆,就看不到该页面
}
if (ldapapi.IsUser()) {
response.sendRedirect("state.jsp?state=1");
return;///如果仅仅是用户而不是管理员,看不到该页面.
现在我以管理员登陆,能看到该页面,然后退出,以一般用户登陆,因为菜单不会给出该页的连接地址(管理员的菜单有该页地址) 所以我直接在URL中输入地址,居然看到了该页面!
我刷新,好了,看到的是重定向的那个报错页面,是一般用户应该看到的.
现在我又退出,以管理员登陆,到该页面一看,居然是钢材用户看到的报错页面!
我刷新,好了,又能看到该页面了.
结论是:无论我以什么身份登陆,只要我登到某一页,看到的是该地址在本机的缓存页面,也就是上次看到的画面,刷新后才到服务器重读验证,这个问题怎么解决???
让我不用刷新就能看到正确页面???????????????????
|
在你的页面加如下代码就可以了.你试试吧.....(别忘了给俺加分...)
//禁止Cache.
response.setHeader("Pragma","No-Cache");
response.setHeader("Cache-Control","No-Cache");
response.setDateHeader("Expires", 0);
//禁止Cache.
response.setHeader("Pragma","No-Cache");
response.setHeader("Cache-Control","No-Cache");
response.setDateHeader("Expires", 0);
|
这三句都是修改http响应的响应头,前两句都是告诉浏览器禁用缓存,不过前一句是适用于http的1.0版本,第二句适用于1.1版本。第三句是设定页面的过期时间(过期则浏览器要重新向服务器请求该页面)