ExtJs session过期
在时间为1分钟的给定session过期后
点击页面所有操作,页面将跳转到登陆页面
需要第一个页面 web.xml 来修改session-timeout
需要第二个页面 common.js 用来写前台
需要第三个页面来在后台写判断
应该是这样吧??
<session-config>
<session-timeout>1</session-timeout>
</session-config>
function sessionTimeOut() {
function showResult(btn) {
top.location.href = 'login.jsp';
};
check_login = function () {
Ext.Ajax.request({
url: './inc/session.jsp',
success: function (response, options) {
var responseArray = jsonDecode(response.responseText);
if (responseArray.success == false) {
Ext.MessageBox.show({
title: '会话超时',
msg: '您的会话已由于超时而过期,请您重新登录!',
buttons: Ext.MessageBox.OK,
fn: showResult,
icon: Ext.MessageBox.WARNING
});
}
}
});
};
check_login();
setTimeout(showResult, 3000);}
/**
* Session信息查看是否过期
*
*/
public String sessionTimeOut(HttpServletRequest request,HttpServletResponse response){
HttpSession session = request.getSession(false);
if(session ==null ||session.getAttribute("loginInfo")==null) {
try {
response.getWriter().print("{success:false}");
} catch (IOException e) {
}
}
return null;
}
public class Check
{
/// <summary>
/// 检查用户是否在线,ajax专用
/// </summary>
public static UserInfo UserOnline() { return UserOnline(null); }
/// <summary>
/// 检查用户是否在线
/// </summary>
/// <param name="u">页面名称,为null则为ajax</param>
/// <returns></returns>
public static UserInfo UserOnline(string u)
{
UserInfo ui = HttpContext.Current.Session["ui"] as UserInfo;
if (ui == null)
{
if (u == null) HttpContext.Current.Response.Write("{offline:true}");
else HttpContext.Current.Response.Redirect("/login.aspx?" + u);
HttpContext.Current.Response.End();
}
return ui;
}
}
Check.UserOnline("xxx.aspx");