Ext结合Struts的Session超时处理

配置struts.xml文件的默认拦截器(注:登录的action用<default-interceptor-ref name="defaultStack" />)

<interceptors>
     <interceptor name="loginInterceptor" class="com.fireinjava.ui.interceptor.LoginInterceptor" />
     <interceptor-stack name="myDefaultIntegerceptor">
           <interceptor-ref name="loginInterceptor" /> 
           <interceptor-ref name="defaultStack" />
     </interceptor-stack>
</interceptors>
		
<default-interceptor-ref name="myDefaultIntegerceptor" />

 

拦截器LoginInterceptor.java

package com.fireinjava.ui.interceptor;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import com.fireinjava.ui.UserEnv;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

/**
 * @version 1.0
 * @data 2009-9-23
 * @描述:检查Session是否超时
 */
public class LoginInterceptor extends AbstractInterceptor {

	@Override
	public String intercept(ActionInvocation actioninvocation) throws Exception {
		ActionContext context = actioninvocation.getInvocationContext();
		Map session = context.getSession();
		UserEnv user = (UserEnv) session.get("userEnv");
		System.out.println(">>>>>>>>>>>>>LoginInterceptor");
		if (user != null) {
			return actioninvocation.invoke();
		} else {
			outString("<script type=\"text/javascript\">var session='SessionExpired'; function getRootWin(){var win = window;while (win != win.parent){win =win.parent;}return win;} getRootWin().reLogin();</script>");//页面接收
		}
		return Action.NONE; // 页面上写一个Login弹出窗口
	}

	public void outString(String str) {
		HttpServletResponse response = ServletActionContext.getResponse();
		try {
			response.setHeader("Pragma", "No-cache");
			response.setHeader("Cache-Control", "no-cache");
			response.setDateHeader("Expires", 0);
			response.setContentType("text/html;charset=gbk");
			PrintWriter out = response.getWriter();
			out.write(str);
			out.flush();
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

 jsp 页面代码:

 

<script type="text/javascript">

function getRootWin(){   
    var win = window;   
    while (win != win.parent){   
        win = win.parent;   
    }   
    return win;   
}   

var reLoginWin;

reLogin = function (){ getRootWin().reLoginWin=new Ext.Window(....);}//登录窗口

Ext.Ajax.on('requestcomplete', function(conn, response, options, e){  var returnVal=response.responseText;  if(!Ext.isEmpty(returnVal)&&returnVal.indexOf('SessionExpired')!=-1)   reLogin();});

</script>

 

  

嵌入外部页面时,保持本应用的Session激活

function keepSession(){
     Ext.Ajax.request({url : 'keepSession.action'});
}
setInterval("keepSession()",60000);//1分钟调用下

 

<action name="keepSession" class="com.xx.BaseAction" method="keepSession"/>

public void keepSession(){

}

Java课程作业管理系统设计与毕设落地实践 课程作业管理系统是教育信息化中的典型教学管理应用,其核心在于将布置、提交、批改、归档、复盘等教学动作无缝串联。基于Java构建此类系统,关键在于利用JVM稳定性、Spring生态对非专业用户的友好性,以及POI/iText等库对学术文档生成的原生支持。技术选型需紧扣教学环境刚性约束——如老旧机房兼容IE11、低配硬件运行稳定、助教零代码参与维护。本文聚焦本科毕业设计场景,以最小可行架构(Spring Boot+Thymeleaf+MySQL单体)实现可演示、可答辩、可写入论文的闭环系统,覆盖流程卡点设计、文 阅读详情

相关推荐

Struts_1_Dyna动态实现登录

利用struts_1编写代码实现简单登录功能,学了Struts之后,是在action中编写请求处理代码,为什么这样做呢?因为Struts作者帮我们写好了一个actionServlet,他写这个servlet的目的是希望所有请求都交给它预处理,它预处理完后,再调用你写的action处理请求。当然,Struts的actionServlet在对请求进行预处理时,会帮我们做好一些基础性的工作,我们编写action处理请求时,就可以省去一些编码量了,从而简化开发。

Ext学习2——主页面

学习Ext 组件使用, 做一个管理系统的index主界面             1.   使用布局组件Ext.Viewport,将页面分为上,左,右,中,分别使用属性region 的north,west,east和center             2.    在上面 north 板块,显示系统共用操作和欢迎信息             3.    在左边 west 板块,使用 Ext.

533

政府科技管理者如何提升科技成果转化项目进场交易的备案效率?.docx

政府科技管理者如何提升科技成果转化项目进场交易的备案效率?

ajax action 不跳转

Ext结合Struts的Session超时处理 博客分类: Ext EXTStrutsAjaxUIJavaScript 配置struts.xml文件的默认拦截器(注:登录的action用) Xml代码 ...

master3003的博客 224

科技中介服务机构如何通过智能体技术提升服务效率与专业度?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

产业园区如何高效对接企业技术需求并推动成果转化?观点作者:科易网-国家科技成果转化(厦门)示范基地.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

Extjs session 超时问题处理

对于普通的http请求,可以通过过滤器Filter来判断session超时,然后跳转到登录页面;但是对于Ajax请求,则不会如期待的那样自动转到登录页面(我试了网站上的许多种方案,都是停留在当前页面),好不容易找一篇,但是代码还是有点问题,不能运行,自己修改了下,并测试通过,所以拿出来分享下。 不论是普通http请求还是ajax请求,都可以通过过滤器/拦截器来将请求捕获,而且区分这两种请求在于头部...

juchanghuan的专栏 267

山区道路边坡落石隐患检测数据集VOC+YOLO格式241张1类别.md

【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 优快云 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 优快云 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 优快云 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 优快云 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。

EXT 开发的项目 struts 拦截器问题

关于配置项目中应用ExtJs开发的拦截器,针对session过期后,点击任何操作都让页面跳转到登录界面。 编写好一个拦截器,先按常规配置好(那些配置拦截器的细节就不用说了吧,不会的请看下关于struts2的拦截器定义及其在struts.xml文件中的配置)。 先在拦截器里面判断session中是否存在’用户信息’,如果不存在则跳转到登录界面: public String...

shikonglaike的专栏 224

高空作业栏杆检测数据集VOC+YOLO格式230张3类别.md

【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 优快云 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 优快云 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 优快云 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 优快云 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。

ti-cgt-c2000-22.6.0.LTS-windows-x64-installer

ti-cgt-c2000-22.6.0.LTS-windows-x64-installer

Python渗透测试实战:从脚本到自动化攻击链构建

渗透测试是网络安全领域的核心实践,旨在通过模拟攻击来评估系统安全性。其基本原理是遵循标准测试流程(如PTES),对目标进行系统化的信息收集、漏洞探测与利用。Python作为自动化利器,能显著提升测试效率,通过编写脚本实现端口扫描、服务识别、漏洞验证等环节的自动化。在实战中,将Python脚本与渗透测试思维结合,可构建从信息收集到横向移动的完整攻击链。本文聚焦如何利用Python实现Web应用指纹识别、敏感信息挖掘等关键环节,并分享在实战中绕过WAF、优化字典等工程技巧,帮助安全从业者将孤立脚本转化为系统化的

clijovtbq401783153的博客 404

光伏板太阳能板尘土灰尘脏污检测数据集VOC+YOLO格式1006张3类别.md

【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 优快云 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 优快云 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 优快云 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 优快云 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。

两相交错并联Boost电路仿真模型(Simulink仿真实现)

内容概要:本文围绕两相交错并联Boost电路的Simulink仿真模型展开,旨在通过仿真手段深入研究该电路在电力电子系统中的工作特性与性能优势。文章系统阐述了两相交错并联Boost电路的拓扑结构、工作原理及其在提升系统效率、减小输入电流纹波、均衡电流分配方面的显著优势。通过构建完整的Simulink仿真模型,对电路在不同负载与输入条件下的动态响应、稳态性能及控制策略进行了全面分析与验证。重点设计并实现了电压电流双闭环PI控制策略,详细论述了PI控制器的参数整定方法、占空比调节机制以及交错并联所带来的均流效果。仿真结果表明,所构建的模型能够有效提升系统的动态响应速度与稳定性,显著降低输入电流的谐波含量与纹波幅值,验证了交错并联技术在中高功率DC-DC变换应用中的优越性。; 适合人群:具备电力电子技术基础、熟悉Simulink仿真的电气工程及相关专业本科生、研究生,以及从事电源系统设计、新能源变换器研发的工程技术人员。; 使用场景及目标:①学习和掌握交错并联Boost电路的拓扑结构、工作原理与建模方法;②开展电力电子变换器的仿真分析、控制器设计与参数优化;③为实际工程项目中的高性能DC-DC变换器设计,特别是追求低输入纹波和高功率密度的应用场景,提供理论支撑与仿真验证依据。; 阅读建议:建议读者结合Simulink模型文件同步操作,深入理解主电路各模块、双闭环控制结构及PWM调制环节的参数设置与逻辑实现,重点关注PI控制器的参数整定过程与交错控制的时序配合,并可通过调整输入电压、负载大小及控制参数进行对比实验,以深化对交错并联技术优势及其控制策略的理解。

无功优化电网故障下分布式能源系统多目标优化[并网转换器(GCC)](Matlab代码&Simulink实现)

内容概要:本文详细介绍了基于Plecs或Simulink平台构建的全桥LLC谐振变换器仿真模型,重点研究了变频控制与移相混合控制策略下的闭环系统设计与参数优化方法。内容涵盖全桥LLC谐振变换器的工作原理、小信号建模技术(如扩展描述函数EDF)、PID控制器参数整定过程以及软开关实现条件,并通过仿真验证了系统在稳态输出性能、动态响应特性(如启动过程与负载阶跃)和频率调节平滑性等方面的优良表现。同时提供了完整的仿真模型、参数设计报告及说明文档,有助于读者复现结果并深入理解控制机制与建模细节。; 适合人群:具备电力电子、自动控制等相关专业知识背景,从事高效率电源设计、新能源变换系统研发的工程师及高等院校电力电子与电力传动方向的研究生。; 使用场景及目标:①掌握LLC谐振变换器的小信号建模与闭环控制系统设计方法;②学习并应用变频与移相结合控制策略提升电源转换效率;③支撑科研项目中的电力电子系统仿真验证或学位论文课题开发;④复现高水平学术论文中关于谐振变换器的控制方案与性能分析。; 阅读建议:建议结合所提供的仿真模型与参数设计资料,边运行仿真边对照文章内容理解控制逻辑与建模过程,特别关注小信号模型的建立方法与PID控制器参数整定环节,以增强对实际工程问题的分析与设计能力。

机器学习发展历史及现状(重要的期刊,会议,大牛总结)

1 引言 机器学习是指通过计算机学习数据中的内在规律性信息,获得新的经验和知识,以提高计算机的智能性,使计算机能够像人那样去决策。随着各行业对数据的需求量增多,对处理和分析数据的效率要求变高,一系列机器学习算法应运而生。机器学习算法主要是指通过数学及统计方法求解最优化问题的步骤和过程。针对不同的数据和不同模型需求,选择和使用适当的的机器学习算法可以更高效地解决一些实际问题。本文将从机器学习的起源...

Oscar2018的博客 5万+
上一篇: Ext的CheckboxSelectionModel默认选中
下一篇: js杂七杂八
fireinjava
博客等级 码龄20年 5粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值