为什么80%的码农都做不了架构师?>>>   

培养奇才的先决前提是公共的聪明以前的项目用的是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》

转载于:https://my.oschina.net/jie07/blog/87898

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

  1. dwz ajax session超时跳转登录页(struts2自定义拦截器)

    1.定义struts2拦截器(网上例子很多) 代码如下: package rt.intercepter;import java.util.Map;import javax.servlet.http.H ...

  2. react axios和ajax网络请求拦截(session过期跳转登录页)

    网络请求拦截经常也可用到,比如在所有接口消息请求头部加上验证信息token之类的,或者接口报某类错误时统一处理.这里主要用在请求接口时,判断session是否过期,统一返回状态码区分,如果过期了跳转登 ...

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

    在Struts应用中,我们发出的请求都会经过 相应的拦截器进行相关处理,一般都会有一个用户登录拦截(Session失效拦截):一般请求的话,如果Session失效时,我们会跳到登录页面,可是如果我们采 ...

  4. 过滤器和拦截器比较及实现未登录跳转登录页的方式

    看了一下午的文档,对Filter(过滤器)和Interceptor(拦截器)有了更深入的理解,下面主要记录对这两个在未登录时自动跳转登录页面的实现的一些自己的理解. 首先要求拦截未登录自动跳转登录页面 ...

  5. 【教程】EasyDSS演示模式播放ws-flv格式视频流,如何控制3分钟自动跳转登录页?

    之前我们讲过EasyDSS视频智能直播点播平台在演示模式下登录5分钟后强制跳转登录页的实现过程,大家也可以去了解一下.EasyDSS视频平台界面可以播放ws-flv.flv.hls三种格式的视频流. ...

  6. vue---axios拦截器处理登录失效跳转登录页

    axios拦截器(Interceptors)主要分为: (1)请求拦截器:在发送请求前进行拦截,可以根据发送的请求参数做一些发送参数的调整,例如设置headers (2)响应拦截器:在后台返回响应时进 ...

  7. react-router4.0 访问其他页面未登录时跳到登录页

    没有登录直接访问页面跳转到登录页,官网的例子很详细了,参照官网做以下调整: 先把Route封装一下,判断一下用户是否登录,如果登录则正常router跳转,如果未登录则跳转登录页.代码: private ...

  8. session会话拦截ajax,session过期,拦截ajax请求并跳转登录页面

    1.方法一 :1.1使用filter 和ajaxsetup 对ajax进行拦截并跳转登录页面 public void doFilter(ServletRequest request, ServletR ...

  9. session过期跳转登录页面

    2019独角兽企业重金招聘Python工程师标准>>> 项目需要做一个自动登出的功能,查询了网上的资料,一开始准备用session监听做,按照下面方式配置监听器 1.在项目的web. ...

最新文章

  1. 陶大程院士:深度学习“泛化”理论的回顾与前沿
  2. 跳跃问题(Java)
  3. sqlldr 导入乱码,Oracle客户端字符集问题
  4. odoo 自定义视图_如何使用Windows的五个模板自定义文件夹视图
  5. 试试这个Excel知识测验,得分超过80分算你赢
  6. Hibernate 主键策略
  7. 【毕业设计】ESP8266 WiFi 模块使用介绍 - 单片机 物联网 嵌入式
  8. Solana沦为“宕机链”:TPS修正主义的又一次失败
  9. 从零开始写一个Jison解析器(3/10):良好的开端是成功的一半——《政治学》 (亚里士多德)
  10. 2022年施工升降机司机(建筑特殊工种)考题及答案
  11. 标签打印机打印亚马逊外箱FBA标签
  12. 2017第八届蓝桥杯决赛(大学B组)java试题 瓷砖样式
  13. ros::nodehandle常规操作
  14. 如何获取系统下目录的文件系统类型
  15. 宝塔linux如何防护,使用宝塔面板的CC***防护策略
  16. 在线画图工具-heatmap热图
  17. 将VSCode语言环境设置为中文
  18. 闲话复数(1) | 不现实的虚数 i 为什么虚?它长成什么样?
  19. 数据分析报告流程展现
  20. python实现京东秒杀

热门文章

  1. python读取ansi编码文件,如何在Python中同时读取ANSI和Unicode txt文件?
  2. impdp 不兼容_oracle - Oracle:使用impdp导入数据库转储时出错:Data Pump客户端与数据库版本12.1.0.2.0不兼容 - 堆栈内存溢出...
  3. kafka不使用自带zk_Centos安装kafka(使用自带的zookeeper)
  4. 如何让不使用vba没办法打开excel表_Excel常见问题
  5. Python迭代文件对象
  6. 20190809:旋转数组
  7. SpringBoot实战(十二):集成 Spring Boot Admin 监控
  8. 智能一代云平台(三十八):单元测试推动开发,如何避免服务之间依赖拖了工期
  9. 银行内鬼程序员曝光:服务器植病毒,ATM取款717万,账户余额还不变
  10. GAN能生成3D图像啦!朱俊彦团队公布最新研究成果