dwz ajax session超时跳转登录页(struts2自定义拦截器)
1.定义struts2拦截器(网上例子很多)
代码如下:
package rt.intercepter; import java.util.Map; import javax.servlet.http.HttpServletRequest; import rt.pojo.UserInfo;
import rt.util.Struts2Utils; import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor; public class LoginValidate extends AbstractInterceptor { /**
*
*/
private static final long serialVersionUID = 1L; @Override
public String intercept(ActionInvocation invocation) throws Exception {
System.out.println("interceptor intercept");
Map<String, Object> session = invocation.getInvocationContext().getSession();
UserInfo userInfo = (UserInfo) session.get("userInfo");
HttpServletRequest request = Struts2Utils.getRequest();
if ("XMLHttpRequest".equalsIgnoreCase(request.getHeader("X-Requested-With")) || request.getParameter("ajax") != null) {
if(null == Struts2Utils.getSession() || null == userInfo){
Struts2Utils.getResponse().getWriter().write("{\"statusCode\":\"301\", \"message\":\"会话已过期!请重新登录!\"}");
return null;
}
}
return invocation.invoke();
}
}
2、配置拦截器
<!-- 用于CRUD Action的parent package -->
<package name="crud-default" extends="convention-default">
<!-- 基于paramsPrepareParamsStack,
增加store interceptor保证actionMessage在redirect后不会丢失 -->
<interceptors>
<span style="color: #ff0000;"><interceptor name="sessionout" class="rt.intercepter.LoginValidate" /></span> <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" /> <span style="color: #ff0000;"><interceptor-ref name="sessionout"/></span> </interceptor-stack> </interceptors> <default-interceptor-ref name="crudStack" /> </package>
3.测试:
登录后,等一分钟,点击出现登录超时,并跳转到了登录页面。
如果想session超时之后设置页面不跳转,而是弹出框登录,请在dwz的初始化页面内修改:
<script type="text/javascript">
$(function(){
DWZ.init("dwz.frag.xml", {
loginUrl:"login_dialog.html", loginTitle:"登录", // 弹出登录对话框
//loginUrl:"login.jsp", // 跳到登录页面
statusCode:{ok:200, error:300, timeout:301}, //【可选】
keys: {statusCode:"statusCode", message:"message"}, //【可选】
pageInfo:{pageNum:"pageNum", numPerPage:"numPerPage", orderField:"orderField", orderDirection:"orderDirection"}, //【可选】
debug:false, // 调试模式 【true|false】
callback:function(){
initEnv();
$("#themeList").theme({themeBase:"themes"});
setTimeout(function() {$("#sidebar .toggleCollapse div").trigger("click");}, 10);
}
});
}); </script>
这样就完成了,希望能给大家带来帮助.
dwz ajax session超时跳转登录页(struts2自定义拦截器)的更多相关文章
- struts2自定义拦截器 设置session并跳转
实例功能:当用户登陆后,session超时后则返回到登陆页面重新登陆. 为了更好的实现此功能我们先将session失效时间设置的小点,这里我们设置成1分钟 修改web.xml view plainco ...
- Struts2自定义拦截器Interceptor以及拦截器登录实例
1.在Struts2自定义拦截器有三种方式: -->实现Interceptor接口 public class QLInterceptorAction implements Interceptor ...
- ajax 请求登录超时跳转登录页的示例代码
Ajax AJAX即“Asynchronous Javascript + XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. 在Filter里判断是否登录,如果未 ...
- ajax 请求登录超时跳转登录页解决方法
在Filter里判断是否登录,如果未登录返回401状态 public class SelfOnlyAttribute : ActionFilterAttribute { public override ...
- session 超时跳转登陆页面
/** * session超时跳转登陆页面 * @author zhangdong * 2017年10月24日 */ @Aspect @Component public class SessionTi ...
- Intent Flag实际项目 -- 超时跳转登录界面并清理前面所有activity
项目中涉及到登录超时跳转登录界面的逻辑,我以前的跳转flag为Intent.FLAG_ACTIVITY_CLEAR_TOP,但是点击返回按钮还是会回到上个界面.代码如下: ActivityUtils. ...
- Struts2透过自定义拦截器实现登录之后跳转到原页面
Struts2通过自定义拦截器实现登录之后跳转到原页面 这个功能对用户体验来说是非常重要的.实现起来其实很简单. 拦截器的代码如下: package go.derek.advice; import g ...
- JavaWeb -- Struts 自定义拦截器, 登录权限拦截
1. 自定义拦截器, 登录权限拦截 login.jsp 登录JSP <%@ page language="java" contentType="text/html; ...
- springmvc 自定义拦截器实现未登录用户的拦截
第一步:编写自定义拦截器类,该类继承HandlerInterceptorAdapter,重写preHandle方法 第二步:配置springmvc.xml文件,定义拦截器属性 登录请求的mappi ...
随机推荐
- 安装部署Apache Hadoop (完全分布式模式并且实现NameNode HA和ResourceManager HA)
本节内容: 环境规划 配置集群各节点hosts文件 安装JDK1.7 安装依赖包ssh和rsync 各节点时间同步 安装Zookeeper集群 添加Hadoop运行用户 配置主节点登录自己和其他节点不 ...
- CentOs 安装 swftools
一 下载安装包 #wget http://www.swftools.org/swftools-0.9.1.tar.gz 二 安装相关依赖库 #yum install gcc* automake zli ...
- 收集Nginx的json格式日志(五)
一.配置nginx [root@linux-node1 ~]# vim /etc/nginx/nginx.conf #修改日志格式为json格式,并创建一个nginxweb的网站目录 log_form ...
- hdoj2159 FATE(完全背包)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2159 思路 每种怪都有无限个,所以使用完全背包来解决.这题比普通完全背包多了一个条件,就是杀怪的个数不 ...
- CentOS 编译源码安装MySQL-5.6.16
mysql5.6.16的安装和之前的5.5.5.1有些不同,编译的时候不再使用./configure来进行了,使用了cmake命令来进行编译项目. 1.准备编译环境 yum -y installmak ...
- 关于ecshop的mobile里user.php登录和注册验证码不显示
在做ecshop模板的时候由于user.php里的登录和注册是在一个页面里切换的,这就致使这里的登录和注册里的验证码不显示 找到mobile/themesmobile/ecshoptemplate_m ...
- 洛谷 P2894 [USACO08FEB]酒店Hotel-线段树区间合并(判断找位置,不需要维护端点)+分治
P2894 [USACO08FEB]酒店Hotel 题目描述 The cows are journeying north to Thunder Bay in Canada to gain cultur ...
- shell 变量中间有空格 如何传入整个变量
parmfile='abc 123' RunProgram programname "${parmfile}" -->传入abc 123 RunProgram progr ...
- 理解URI
---恢复内容开始--- 参考 https://zh.wikipedia.org/wiki/%E7%BB%9F%E4%B8%80%E8%B5%84%E6%BA%90%E6%A0%87%E5%BF%97 ...
- 磁盘备份工具dcfldd
磁盘备份工具dcfldd dcfldd是Kali Linux自带的一款磁盘备份工具.该工具是dd工具的增强版,更适合渗透测试和安全领域.dcfldd提供实时哈希校验功能,确保数据的安全.同时,它还 ...