dwz ajax session超时跳转登录页(struts2自定义阻碍器)

培养奇才的先决前提是公共的聪明以前的项目用的是springsecurity3.0,session超时主动跳转的登录页(这个页面可配),后来页面前端用dwz框架了,各类提交都是ajax提交,session超时再点击就会报错,我要实现的是ajax提交被阻碍,断定session是否超时,若是超时返回到登录页面。

让我们保护公允,那么我们将会获得更多的。1.定义struts2阻碍器(网上例子很多)

代码如下:

package com.sf.emp.utils;

import javax.servlet.http.HttpServletRequest;

import org.springside.modules.utils.web.struts2.Struts2Utils;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

/**
 * 断定session是否超时的阻碍器
 * 超时跳到登录页面
 * @author gshen
 */
public class SessionIterceptor extends AbstractInterceptor {
	private static final long serialVersionUID = 7579862236766378267L;

	@Override  
    public String intercept(ActionInvocation actionInvocation) throws Exception { 
		System.out.println("into 阻碍器 。。。。。");
		HttpServletRequest request = Struts2Utils.getRequest();
    	if ("XMLHttpRequest".equalsIgnoreCase(request.getHeader("X-Requested-With")) || request.getParameter("ajax") != null) {
    		if(Struts2Utils.getSession() == null || LoginUserHolder.getLoginUser() == null){
    			Ret.ret301("恳求超时!请从头登录!");
    			return null;
    		}
    	}
       return actionInvocation.invoke();  
    }
}

??重视:Ret.ret301("");办法封装的是dwz框架的ajax响应字符串,类型是301,例如:{"statusCode":"301", "message":"Session Timeout! Please re-sign in!"},用PrintWriter类返回给前台。

2.然后设备struts.xml

代码如下:

<!-- 用于CRUD Action的parent package -->
	<package name="crud-default" extends="convention-default">
		<!-- 基于paramsPrepareParamsStack,
			增长store interceptor包管actionMessage在redirect后不会丧失 -->
		<interceptors>
		<interceptor name="sessionout" class="com.sf.emp.utils.SessionIterceptor" />
			<interceptor-stack name="crudStack">
				<interceptor-ref name="timer"/>
				<interceptor-ref name="logger"/>
				<interceptor-ref name="store">
					<param name="operationMode">AUTOMATIC</param>
				</interceptor-ref>
				<interceptor-ref name="paramsPrepareParamsStack" />
				<interceptor-ref name="sessionout"/>
			</interceptor-stack>
		</interceptors>

		<default-interceptor-ref name="crudStack" />
	</package>

?声明此阻碍器,并放到客栈最底层,让其起首走这个阻碍器。

重视:调试的时辰先把session超不时候设置为1分钟,这个可以在web.xml里设置:

<!-- session超时定义,单位为分钟 -->
	<session-config>
		<session-timeout>20</session-timeout>
	</session-config>

3.测试:

登录后,等一分钟,点击呈现登录超时,并跳转到了登录页面。

若是想session超时之后设置页面不跳转,而是弹出框登录,请在dwz的初始化页面内批改:

<script type="text/javascript">
¥(function(){
	DWZ.init("dwz.frag.xml", {
//		loginUrl:"loginsub.html", loginTitle:"登录",	// 弹出登录对话框
		loginUrl:"login.html",	// 跳到登录页面
		statusCode:{ok:200, error:300, timeout:301}, //【可选】
		pageInfo:{pageNum:"page.pageNum", numPerPage:"page.numPerPage", orderField:"orderField", orderDirection:"orderDirection"}, //【可选】
		debug:false,	// 调试模式 【true|false】
		callback:function(){
			initEnv();
			¥("#themeList").theme({themeBase:"themes"});
		}
	});
});
</script>

?如许就完成了,原创能给大师带来帮助,转载请有名出处http://shen84121062.iteye.com/blog/1166554迪斯雷利

更多网站建设信息、网站开发资讯,敬请咨询百微信息科技,021-57700304

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值