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

C#与发那科机器人通信实战:从SDK配置到机械臂控制 本文详细介绍了如何使用C#与发那科机器人进行通信,从SDK配置到机械臂控制的完整实战流程。内容包括环境准备、通信连接建立、机械臂运动控制、异常处理与状态监控,以及高级功能实战,帮助开发者快速掌握工业机器人编程技术。 阅读详情

在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发送请求时如果拦截返回一个表示就跳转,否则执行正常操作。

DS18B20温度传感器项目实战:从驱动编写到LCD显示,打造你的第一个温控系统 本文详细介绍了如何使用DS18B20温度传感器和LCD1602显示屏构建一个完整的温控系统。从硬件连接、OneWire协议实现到温度数据采集与LCD显示,全面解析了系统整合与工程化实现的关键步骤,帮助开发者快速掌握嵌入式温度监测系统的开发技巧。 阅读详情

相关推荐

Unity Addressable资源缓存路径自定义指南:告别C盘爆满烦恼

本文详细介绍了如何自定义Unity Addressable系统的资源缓存路径,解决其默认存储在C盘导致的磁盘空间不足问题。通过配置CacheInitializationSettings并编写编辑器脚本,开发者可以将缓存迁移至项目目录,实现资源的集中管理,提升团队协作效率与开发环境一致性。

pytorch8learner的博客 475

拦截ajax请求跳转登录页面

拦截ajax请求跳转登录页面场景原因解决方法后台代码前台 场景 项目中使用springMVC的HandlerInterceptorAdapter拦截器拦截请求,如果session失效时,就自动跳转登录页面,但是如果是ajax请求时,就出现不能自动跳转登录页面的情况,也就是ajax请求的转发重定向都失效。 原因 参考:https://blog.csdn.net/mozha_666/article/d...

4933

Unity2019编译器下使用Ump无错误,打包exe不播放 或 将exe文件在其他电脑下运行不播放

一、unity编译器下使用UMP可以播放视频,打包后查看debug 出现错误 UnloadTime: 1.070900 ms Fallback handler could not load library F:/PCTest/AccessControlSysteam/jfmx_Data/Mono/libdl Fallback handler could not load library F:/PCTest/AccessControlSysteam/jfmx_Data/Mono/libdl.dll Fa.

qq_42345116的博客 4702

asp.net mvc ajax在登录过期时请求数据无法跳转到登录页 处理

上面 $.post 是jq ajax异步请求,在成功的回调函数中如上面写了个res参数,实际这函数有三个参数,分别function(data,stutas,xhr) 上面res仅仅是data占位,只接收返回数据,不过一般也就只关心返回的数据,但时间一长就会忽略甚至忘记还有另外二个,解决这个问题就是需要最后一个参数xhr 是个jqXHR类型的,也就是XMLHTTPRequest对象。解决方法如下,估计写asp.net webform的人少了,这里仅以mvc为例,webform同理。

songyan_jun的专栏 1013

FT2232HL JTAG下载器硬件设计指南:从引脚配置到电平转换实战

本文详细解析了FT2232HL JTAG下载器的硬件设计要点,包括引脚配置、电平转换电路设计及EEPROM配置技巧。通过实战案例展示如何利用FT2232HL实现高速JTAG通信,解决电平不匹配等常见问题,提升嵌入式开发效率。特别适合需要灵活JTAG接口的硬件工程师参考。

weixin_29194693的博客 258

AI数字人短视频数字人口播数字人分身建模流程全解析

在人工智能与计算机图形学蓬勃发展的当下,数字人建模作为打造虚拟数字人的核心环节,其流程复杂且精妙,融合了多种前沿技术与创意构思,为栩栩如生的数字人形象奠定基石。​。

2403_87518095的博客 1448

5G边缘计算:核心网下沉革命

5G核心网与边缘计算的深度融合,通过UPF下沉、本地流量卸载等关键技术,实现了低时延、高效能的分布式计算架构。该技术将数据处理从核心网向边缘节点转移,支持工业控制、车联网、远程医疗等场景的1-10ms超低时延需求。5G核心网的SBA架构和CUPS设计为边缘计算提供了灵活部署基础,SMF、PCF等网元协同确保业务质量与可靠性。

Qinti_mm的博客 1402

ajax session失效后,跳转到登录页面的全局处理

在SaaS系统中, 我们需要考虑, 用户停留页面时间过长导致session失效后, ajax方法无法正确运行, 我们又不希望在每个ajax方法中, 来判断是否登录, 未登录的情况下就跳转到登录页. 我们的解决方案是: 首先,有一个Intercepter 实现了HandlerInterceptor接口. 在preHandler方法中, 判断handler对象类型, 我们只处理 spri

fenglvming的专栏 3572

基于 transformer、lstm、LSTM多特征的交通流量预测 完整数据代码 超全项目 本科硕士毕设卓卓有余

基于 transformer、lstm、LSTM多特征的交通流量预测 完整数据代码 超全项目 本科硕士毕设卓卓有余

4657

使用 MATLAB/Simulink + Simscape Electrical,构建一个含储能的微电网系统,实现储能系统与并网逆变器的协同控制

摘要:本文基于Simulink平台,详细介绍了微电网中储能系统与并网逆变器的协同控制建模与仿真方法。主要内容包括:1)构建包含光伏、风电、锂电池和双向DC-DC变换器的微电网系统;2)设计并网逆变器的PQ/Vf双模式控制策略;3)实现储能系统与逆变器的协同控制逻辑,包括SOC保护和功率分配;4)通过多种工况仿真验证系统性能。结果表明,该系统能有效维持微电网稳定运行,支持并网/离网无缝切换。文章还探讨了优化方向和应用扩展,为新能源微电网控制提供了实用参考。

xiaoheshang_123的博客 102

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

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

weixin_28366475的博客 243

滑模控制算法(SMC)讲解-案例(附C代码)

该文章介绍了滑模控制算法的原理实现步骤,特点及关键问题,最后以车辆控制案例来讲解滑模控制的整个步骤实现

heda3的博客 4112

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

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

weixin_39765325的博客 396

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

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

weixin_42514616的博客 291

IEM模型,地表粗糙度模拟

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

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

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

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

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

jameskaron的专栏 362

easyui框架session失效问题

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

I need you back to stay 3742

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

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

weixin_30617695的博客 194

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

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

aili1947的博客 238

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

session失效ajax请求跳转登录页面

在MVC过滤器中加入以下代码: if (session == null || session.getAttribute("user") == null) { // *用户登录以后需手动添加session if("XMLHttpRequest".equals(request.getHeader("X-Requested-With"))){ response...

Jayden的博客 2701
上一篇: javascript常用方法函数收集
下一篇: Jquery string 和 json相互转换的方法
ole_triangle_java
博客等级 码龄10年 82粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值