在子页面session过期无法跳转到父页面

当session过期后可以用过滤器来设置重定向页面

public class ActionFilter extends HttpServlet implements Filter {
private FilterConfig filterConfig;
public void init(FilterConfig config) {
this.filterConfig = config;
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws ServletException, IOException {
HttpServletRequest req = (HttpServletRequest) servletRequest;
servletRequest.setCharacterEncoding("UTF-8");
HttpServletResponse res = (HttpServletResponse) servletResponse;
String url = req.getRequestURI();
User user = (User) req.getSession().getAttribute("SysUser");
if (null == user) {
if (!COMMON.isEmpty(url) && (url.endsWith("newestlogin.jsp") || url.endsWith("UserLoginAction.jsp") || url.endsWith("login.jsp") || url.endsWith("loginAction.do"))) {
filterChain.doFilter(servletRequest, servletResponse);
} else {
req.getRequestDispatcher("/newestlogin.jsp").forward(req, res);
}
} else {
filterChain.doFilter(servletRequest, servletResponse);
}
}

}

但是这样不能不能跳出iframe等框架。
可以用javaScript解决
在你想控制跳转的页面,比如login.jsp中的<head>与</head>之间加入以下代码:

<script language=”JavaScript”>
if (window != top) {
top.location.href = location.href;

}

</script>

原文地址:https://www.cnblogs.com/lc93/p/8316971.html

时间: 2024-10-08 13:02:43

在子页面session过期无法跳转到父页面的相关文章

MVC 访问IFrame页面Session过期后跳转到登录页面

Web端开发时,用户登录后往往会通过Session来保存用户信息,Session存放在服务器,当用户长时间不操作的时候,我们会希望服务器保存的Session过期,这个时候,因为Session中的用户信息取不到了,就需要用户重新登录,重新保存Session. Asp.net MVC提供了过滤器,让我们可以很方便的控制访问Action时要处理的事情,针对Session过期后页面跳转,我们可以封装一下Controller的OnActionExecuting方法作为基Controller,如下: pub

随笔:ajax传递数组,layui父子页面传值,下来菜单赋值,父页面数据获取,表格数据替换为字符串

一.Ajax向后台传递数组问题:(声明前台我使用的layui框架)例:我们要多前台一个数据表格进行批量删除操作,我们通过复选框选中数据id,将id存入一个数组中,然后利用ajax传递给后台,完成批量删除,再过程中我们需要加上traditional : true代码如下: function batchDel() { var datas; var ids = new Array();// 声明数组 layui.use('table', function() { var table = layui.t

在父页面和其iframe之间函数回调 父页面回调iframe里写的函数

// @shaoyang  父页面 window['mengBanLogin']={ mengBanArr : new Array(), mengBanLoginSuccess : function(){ console.log('mengbanzhixing'); if(mengBanLogin.mengBanArr.length > 0){ for(var i = mengBanLogin.mengBanArr.length-1; i >= 0; i--){ mengBanLogin.me

MVC session过期如何处理跳转

以前我们总是会写一个基类也叫父类来判断session是否已过期然后跳转到指定的错误页面或者登陆界面,然后让所有的页面都继承这个基类,但是当我们应用到MVC项目中时,发现该方法并不会起作用.这时我们可以这么做: 1.建一个类,如下 using System; using System.Web.Mvc; using System.Web.Routing; namespace CheckInManagerSystem.Controllers { public class CheckLogin : Ac

js页面跳转的问题(跳转到父页面、最外层页面、本页面)

js页面跳转:本页面跳转,上一层页面跳转,最外层的页面跳转,下面为大家大家分享下不同页面之家的跳转问题,感兴趣的朋友可以学习下 "window.location.href"."location.href"是本页面跳转 "parent.location.href"是上一层页面跳转 "top.location.href"是最外层的页面跳转 举例说明: 如果A,B,C,D都是jsp,D是C的iframe,C是B的iframe,B是A

ASP.NET MVC Session 过期验证跳转至登入页面

一.在要检查登入的控制器上继承 CheckLoginController 类 2. CheckLoginController 类的写法 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace TaskManagement.Controllers { public class CheckLoginController :

session或memcache过期之后跳转到登陆页面并跳出iframe框架

1 <!--在你想控制跳转的页面,比如login.html中的<head>与</head>之间加入以下代码:--> 2 <script> 3 if (window != top) 4 top.location.href = location.href; 5 </script>

重写ajax方法实现异步请求session过期时跳转登录页面

jQuery(function($){ // 备份jquery的ajax方法 var _ajax=$.ajax; // 重写ajax方法, $.ajax=function(opt){ var _success = opt && opt.success || function(a, b){}; var _error = opt && opt.error || function(a, b){}; var _opt = $.extend(opt, { success:functi

session失效后跳转到登陆页面

一.编写Filter拦截器类 1 package com.pv.utils; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 6 import javax.servlet.*; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.HttpServletResponse; 9 import javax.servlet.h