Ajax Session失效跳转登录页面的方法

ajax session过期问题的几个解决方案 现在web开发中,ajax应用的比较多。关于此方面的框架也不少。在应用中都会遇到session过期的问题 立即下载

在Struts应用中,我们发出的请求都会经过 相应的拦截器进行相关处理,一般都会有一个用户登录拦截(Session失效拦截);一般请求的话,如果Session失效时,我们会跳到登录页面,可是如果我们采用AJAX请求时,将会返回登录页面的HTML代码,这肯定不是我们想要的,那么我们如何解决呢?请看以下步骤:

一、建立拦截器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package com.xxx.planeap.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.xxx.common.contants.ConstantsKey;
import com.xxx.common.contants.SessionKey;
import com.xxx.planeap.domain.User;
import com.xxx.planeap.security.SecurityContextUtil;
/**
*
* @author Goma OMA1989@YEAH.NET
* @version v1.0
* @since 2012-05-31
*
*/
public class SecurityInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = 1L;
private Logger logger = Logger.getLogger(SecurityInterceptor. class );
@Override
public String intercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
String className = invocation.getAction().getClass().getName();
String action = className.substring(className.lastIndexOf( "." )+ 1 ,className.length());
String actionName = invocation.getProxy().getActionName();
String result;
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
String type = request.getHeader( "X-Requested-With" );
User user = (User) ActionContext.getContext().getSession().get(SessionKey.CURRENT_USER);
if (user == null ) {
logger.debug( "SECURITY CHECKED: NEED TO LOGIN" );
if ( "XMLHttpRequest" .equalsIgnoreCase(type)) { // AJAX REQUEST PROCESS
response.setHeader( "sessionstatus" , ConstantsKey.MSG_TIME_OUT);
result = null ;
} else { // NORMAL REQUEST PROCESS
result = ActionSupport.LOGIN;
}
} else {
logger.debug( "SECURITY CHECKED: USER HAS LOGINED" );
SecurityContextUtil.setCurrentUser(user);
boolean hanPerm = SecurityContextUtil.hasPerm(action, actionName);
logger.debug( "SECURITY CHECKED: PERMISSION---" +action+ "." +actionName+ "=" +hanPerm);
result = invocation.invoke();
}
return result;
}
}

二、定义全局AJAX请求结束处理方法

?
1
2
3
4
5
6
7
8
9
10
11
12
//全局的AJAX访问,处理AJAX清求时SESSION超时
$.ajaxSetup({
contentType: "application/x-www-form-urlencoded;charset=utf-8" ,
complete:function(XMLHttpRequest,textStatus){
//通过XMLHttpRequest取得响应头,sessionstatus
var sessionstatus=XMLHttpRequest.getResponseHeader( "sessionstatus" );
if (sessionstatus== "timeout" ){
//这里怎么处理在你,这里跳转的登录页面
window.location.replace(PlanEap.getActionURI( "login" ));
}
}
});

也就是ajax发送请求时如果拦截返回一个表示就跳转,否则执行正常操作。


GROMACS新手必看:从PDB文件到完整分子动力学模拟的保姆级教程 本文提供GROMACS分子动力学模拟的保姆级教程,从PDB文件处理到完整模拟流程全覆盖。详细讲解结构预处理、系统构建、能量最小化、生产模拟等关键步骤,并分享性能优化和结果分析技巧,帮助新手快速掌握分子动力学模拟的核心操作。 阅读详情

相关推荐

ISP Tuning实战:从零开始调校相机传感器的完整流程(附避坑指南)

本文详细介绍了ISP Tuning的完整实战流程,即如何从零开始调校相机传感器以优化成像质量。内容涵盖从黑电平校正、镜头阴影校正等基础标定,到自动曝光、伽马校正、色彩校正等核心画质调校,再到降噪与锐化的平衡策略,并提供了关键的避坑指南。掌握ISP Tuning是提升相机传感器性能、实现从‘能用’到‘好用’的关键技术。

weixin_32098457的博客 196

当session失效,页面跳转到登陆界面的处理

每个系统页面操作过程中都有一个session,session可以存放少量的用户信息,供我们的页面操作使用。当session超时失效的时候我们就要重新往session中写入登陆的用户信息,而这个写入的操作一般写在在用户成功登陆系统的时候,所以当session失效时,我们页面中所有的操作都要监听,然后跳转到登陆的界面重新登陆。 1、设置session有效时间 在web.xml里面设置: <...

w_iceh的博客 1万+

Materials Studio实战技巧(八)——利用片段库高效构建有机金属配合物

本文详细介绍了在Materials Studio中利用Fragment Browser(片段浏览器)高效构建有机金属配合物的实战技巧。通过调用预置的Metal Templates和Ligands库,用户可以快速搭建如茂金属催化剂等复杂分子骨架,并利用对称性操作精确控制Meso与Rac构型。文章还涵盖了自定义片段库的创建与使用,能显著提升建模效率,适用于计算化学与材料模拟领域的研究者。

wine的专栏 938

mvc身份过期ajax不跳转登录页面,mvc ajax访问后台时session过期无法跳转到Login页面问题解决...

public class BaseController : Controller{protected User UserInfo{set{Session["UserInfo"] = value;}get{if (Session["UserInfo"] == null){return null;}else{return (User)Session["UserInfo"];}}}protected o...

weixin_42515842的博客 397

全覆盖路径规划开源项目Clean-robot-turtlebot3关键函数解析(上)

本系列文章主要介绍全覆盖路径规划开源项目Clean-robot-turtlebot3的相关内容,包含如下四篇文章,分别介绍了开源项目Clean-robot-turtlebot3流程的概括总结、ROS坐标系常用坐标及其变换、Clean-robot-turtlebot3关键函数解析等内容。

慕羽★的博客 2778

智能化教育改革中的教师角色转变:AI应用架构师如何设计“人机协同”系统?

个性化与规模化的矛盾:如何用AI实现规模化的个性化学习,同时保留教师的“人文温度”?自动化与自主性的矛盾:如何用AI自动化流程(如批改),同时避免教师沦为“AI操作工人”?数据驱动与经验驱动的矛盾:如何平衡AI的“数据决策”与教师的“经验决策”,避免“算法偏见”或“经验固化”?在智能化教育改革中,教师始终是教育的核心——AI系统是“辅助工具”,而非“替代者”。

小白菜的博客 1270

在session过期后如何跳转到登录页面

最近在使用easyui时在页面嵌套了ifream,我在后台做了session的处理当session过期时要自动跳转到登录页面,但由于是在ifream中跳转页面,结果跳转出来的登录页面嵌套在ifream中,这个肯定是不行的,我以为是后台的处理有问题结果处理了半天都没有解决这个问题,最后在网上找到了解决方法,原理就是在登录页面加载的时候判断当前路径是不是顶级路径如果不是得话,就修改当前路径为顶级路径

7029

华为OD机试真题 新系统2026-04-08 C++ 实现【直捣黄龙】

小王在玩一款叫做直捣黄龙的小游戏,在该游戏中他需要从入口位置进入敌营,绕过哨兵的层层封锁,达到敌军司令部实施斩首行动。 敌军阵营是一个n*n的矩阵,入口在坐标(0,n/2),敌军司令部在坐标(n-1,n/2),每个 哨兵警戒以自己为中心的9宫格,一旦被哨兵发现则行动失败。

MISAYAONE的博客 263

ASP.NET中 MVC框架设置session过期后自动跳转登录页面

使session过期后自动跳转登录页面 步骤1. 在web.config中设置session过期时间 单位分钟 <system.web> <authentication mode="Forms"> <forms loginUrl="~/Home/Login" timeout="2880" defaultUrl="~/Home/Login" /> </authentication> <sessionState mode=

weixin_40362806的博客 1648

【案例讲解】LVGL关于旋转的配置

在实现项目中,因为横竖屏的关系,需要对其做90度的旋转。配置旋转时发现一些局部刷新控件,旋转后效果不对。异常图标正常图标。

Bigan(安)的博客 4284

实时系统vxWorks - 虚拟机环境搭建

概述VxWorks 操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的...

不只会拍照的程序猿 7854

Ajax处理数据时发现session过期之后,返回不到登入页面,大家讨论下啊

前几天被一个问题拦住了,在页面和服务器交互的过程中,添加了很多ajax的处理功能。但是在使用过程中发现,当session过期之后,再过ajax的操作,此时在服务器端得到的session是一个新的session,isNew的属性是true的,然后发送一个HttpServletResponse的sendRedirect到登入的页面,但是此时ajax的onreadystatechange还处在等待的状态...

waitmannee 271

改进的U-Net在视网膜血管分割上的应用

为了提高算法在血管边界的分割能力,在编码部分采用全局卷积网络(GCN)和边界细化(BR)替换传统的卷积层;在跳跃连接部分引入改进的位置注意模块(PA)和通道注意模块(CA),目的是增加血管与背景之间的对比度,使网络更好地将血管与背景分割开;此外,为了提高网络的性能,在编码部分的最后一层使用密集卷积网络解决网络过拟合问题,同时为了在一定程度上解决梯度爆炸、梯度消失的问题,在解码部分的每一层使用卷积长短记忆网络提升网络获取特征信息的能力。替换传统的卷积操作来解决血管边界非血管像素误分为血管的问题。

weixin_70923796的博客 784

php ajax session失效,Ajax Session失效跳转登录页面的方法

在Struts应用中,我们发出的请求都会经过 相应的拦截器进行相关处理,一般都会有一个用户登录拦截(Session失效拦截);一般请求的话,如果Session失效时,我们会跳到登录页面,可是如果我们采用AJAX请求时,将会返回登录页面的HTML代码,这肯定不是我们想要的,那么我们如何解决呢?请看以下步骤:一、建立拦截器package com.xxx.planeap.interceptor;impo...

weixin_28366475的博客 243

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

struts ajax不跳转页面,AJAX_Ajax Session失效跳转登录页面的方法,在Struts应用中,我们发出的请 - phpStudy...

Ajax Session失效跳转登录页面的方法在Struts应用中,我们发出的请求都会经过 相应的拦截器进行相关处理,一般都会有一个用户登录拦截(Session失效拦截);一般请求的话,如果Session失效时,我们会跳到登录页面,可是如果我们采用AJAX请求时,将会返回登录页面的HTML代码,这肯定不是我们想要的,那么我们如何解决呢?请看以下步骤:一、建立拦截器package com.xxx.p...

weixin_39765325的博客 397

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

php ajax js 登陆页面跳转页面,Ajax+Session失效后即刻跳转登录页面

这次给大家带来Ajax+Session失效后即刻跳转登录页面,实现Ajax+Session失效后即刻跳转登录页面的注意事项有哪些,下面就是实战案例,一起来看一下。在Struts应用中,我们发出的请求都会经过 相应的拦截器进行相关处理,一般都会有一个用户登录拦截(Session失效拦截);一般请求的话,如果Session失效时,我们会跳到登录页面,可是如果我们采用AJAX请求时,将会返回登录页面的H...

weixin_42514616的博客 291

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

java session过期页面跳转,session失效页面跳转

简单实现,如果session失效就返回到登录页面。使用Filter,同时过滤对静态页面和controller的访问,并且ajax请求也能跳转。1. web.xml配置loginfiltercom.lty.ebus.custom.filters.CheckLoginFilterrootPath/login.jsploginfilter/webviews/*loginfilter/webapp/*2....

weixin_32494599的博客 796

easyui框架session失效问题

关于easyui框架session问题,easyui用的是iframe 连接后在tab中显示 ,如果后台拦截器或过滤器判断session是否为空,此时登录页面并为完全跳出来而是在easyui框架中的tabs中显示,若想要它跳到登录界面 一句话即可,同样咋框架中还会出现ajax请求而不是像iframe一个普通页面连接跳转,ajax这种请求如果session为空页面不会有任何跳转好像无任何反应。 首

I need you back to stay 3742

(转)AJAX请求遭遇未登录和Session失效的解决方案

转自:https://www.cnblogs.com/morlin/p/4928542.html 一般来说我们的项目都有登录过滤器,一般请求足以搞定。但是AJAX却是例外的,所以解决方法是设置响应为session失效。 一共分为过滤器和页面JS两个部分的设置,先看过滤器的修改: import java.io.IOException; import javax.servlet...

jameskaron的专栏 362

Session失效后所有Ajax请求跳转登录地址

当登录的Session失效后,采用ajax请求数据时会没有反应,这时候应该自动跳转到登录页面,让用户重新登录。 全局配置以下可实现 $(function() { $.ajaxSetup({ complete:function(XMLHttpRequest,textStatus){ ...

weixin_30617695的博客 195

AJAX请求遭遇未登录和Session失效的解决方案

使用技术:HTML + Servlet + Filter + jQuery 一般来说我们的项目都有登录过滤器,一般请求足以搞定。但是AJAX却是例外的,所以解决方法是设置响应为session失效。 一共分为过滤器和页面JS两个部分的设置,先看过滤器的修改: import java.io.IOException; import javax.servlet.Filt...

aili1947的博客 239

ajax请求session失效被拦截

通常使用过滤器 或拦截器来进行判断session或cookies里是否失效从而跳转页面,通常普通连接请求实现如下: UserInfo user = (UserInfo)request.getSession().getAttribute("user"); if(user == null) { response.sendRedirect("/login.html"); } 对于一个普通的页面没

I need you back to stay 2268

DataTable请求在当session失效被后台拦截器拦截重定向引发错误

一、问题描述 前台使用DataTable插件,发送ajax请求到后端,由于session失效导致被拦截器拦截后重定向到指定页面,但是DataTable认为是后端返回的JSON,DataTable却无法解析导致报错。 二、问题代码 1、后端拦截器代码 拦截除"/login.jsp"、"Login.do"、"/logout.do"以外的请求,对于没有登陆的访问者令其页面重定向到登陆页面 ...

xssl_优快云的博客 991

mvc是不是只能跳转html页面,springmvc中返回页面,只在iframe中跳转,而不是整个页面,解决方法。...

问题描述:在我写的主页面中用到了iframe,其中在iframe中有一个button点击提交,然后在Controller中返回页面的时候,是在iframe中打开的,而不是整个页面。最开始我想用ajax来提交表单,然后用parent.location.href()来进行整个页面的跳转,但是不知道为什么,ajax请求一直返回错误,进入error页面,并且我其他的ajax没有问题,坑最后在用这个方法解决...

weixin_35647799的博客 411

cas跨域单点登录原理_基于CAS的SSO单点登录-实现ajax跨域访问的自动登录

先补课,以下网址可以把CAS环境搭起来。【问题背景】两个系统的整合就不说了,简单来说就是网页放在NginX上,但是ajax调用tomcat的API获取数据,其中tomcat段用CAS做身份认证。具体使用的是org.jasig.cas.client,配置会略有不同就不展开了。【问题描述】ajax调用不允许跨域访问,如果在该容器中未CAS登陆(没有ticket)则会遇到以下错误。XMLHttpRequ...

weixin_39806808的博客 476
上一篇: SET NOCOUNT ON 作用
下一篇: Java DecimalFormat 用法
ole_triangle_java
博客等级 码龄10年 82粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值