浏览 3897 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2014-05-07
要进行session是否过期验证,用了2种方式:1、ajax请求,就返回json 2、普通http请求,直接返回登录页。 但是,每次拦截器获取的类型都是"普通http请求"。 在页面我是用的esayUI提供的form提交,默认是ajax方式啊。 怎么回事??? 麻烦各位老师帮我看看 页面: <form>省略.......</form> //修改密码 function serverLogin() { $('#chpwd').form('submit',{ url:"updatePwd.action", onSubmit: function() { return $(this).form('validate'); }, success:function(jsonData){ var data = eval('(' + jsonData + ')'); if(data.success) { $.messager.alert("修改成功",data.message); } if(data.success == false) { $.messager.alert("修改失败",data.message); } } }); } 拦截器: @Override public String intercept(ActionInvocation invocation) throws Exception { /** * 拦截器 */ HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); String reqType = request.getHeader("X-Requested-With");//获取请求类型 System.out.println("request type:==============="+reqType); Map<String, Object> session = ActionContext.getContext() .getSession(); String sessionInfo = (String)session.get("sessionInfo");//获取设置的session信息 if(null == sessionInfo) { //ajax请求 if("XMLHttpRequest".equals(reqType) ) { System.out.println("======================ajax"); PrintWriter pw = response.getWriter(); pw.print("sessionOut");//返回字符串"sessionOut" pw.flush(); pw.close(); return null; } //普通请求 else { System.out.println("======================http"); return "loginout"; } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |