jquery load方法 拦截器跳转

jquery的.load(src)方法加载 这个src是个action 通过struts2拦截器去判断session是否失效 如果失效让其跳转 到登陆页面 现在判断失效了 只是局部跳转了登陆页面 如何让它整个页面都跳到登陆页面

第1个回答  2012-08-11
可以在action中写一个write方法,把状态值输出,打比方在action中写个status的状态,
用于反应session是否失效,如果session失效则反回"1" 否则返回"0"
然后在load方法的最后一个回调方法中加一个参数,作为返回的结果即:
load("/checkSession.action",function(res){
if("1"==res){
location.href = "login.jsp";
}
});
第2个回答  2012-08-08
所有的AJAX方法加上异步请求标志,拦截器拦截到之后不要跳转,而是发送跳转标志到页面,页面根据这个标志跳转。直接在过滤器跳转异步的方法无法实现。追问

那这种情况应该如何实现呢?

追答

要不然同步请求然后跳转,要不然过滤器返回个特殊值js里跳转

追问

拦截器拦截后返回的是登陆的HTML代码 你说返回个特殊值JS 里跳转 这个可以详细点吗?

追答

拦截器知道没有Session吧,JS可以拿到返回的值吧,如果是你定义的跳转的值,就跳转。

追问

返回的是login 它根据配置文件 返回的是登陆页面的代码 在JS里也只能获取到这个登陆页面的代码

追答

我晕,你不能不要在拦截器里面跳转吗????
拦截器里面只有doFilter的时候才会继续往下的吧??
你用输出流把你的特殊符号写出去,在filter里面返回不就可以了,为什么必须要过配置文件????

本回答被提问者和网友采纳

怎么在一个JSP页面打开时就加载servlet
有很多方法:一、异步加载,用ajax或jquery的post方式。二、用struts的action标签,页面一加载就执行一个action, 不过用servlet就没用了。三、用jsp的forward标签,作用同上。四、用过滤器或拦截器,拦截jsp执行前先执行需要的servlet。

相似回答