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.http.HttpSession;
10
11 public class RequestFilter implements Filter  {
12     private FilterConfig config;
13     //实现初始化方法
14     public void init(FilterConfig config){
15         this.config = config;
16     }
17     public void destroy(){
18         this.config = null;
19     }
20
21     @Override
22     public void doFilter(ServletRequest req, ServletResponse res,
23             FilterChain chain) throws IOException, ServletException {
24         // TODO Auto-generated method stub
25         req.setCharacterEncoding("utf-8");
26         HttpServletRequest request  = (HttpServletRequest) req;
27         HttpServletResponse response  = (HttpServletResponse) res;
28         HttpSession session = request.getSession();
29         //获取客户请求的页面
30         String url = request.getServletPath();
31         System.out.println("wangming"+url);
32         if((!request.getServletPath().equals("/login.jsp"))
33             &&(!request.getServletPath().equals("/solar.jsp"))
34             &&(!request.getServletPath().equals("/index.jsp"))){
35             System.out.println(request.getServletPath());
36             if(session.getAttribute("username")==null){
37                 session.invalidate();
38                 response.setContentType("text/html;charset=gb2312");
39                 PrintWriter out = response.getWriter();
40                 out.println("<script language=‘javascript‘ type=‘text/javascript‘>");
41                 out.println("alert(‘由于你长时间没有操作,导致Session失效!请你重新登录!‘);top.location.href=‘" + request.getContextPath() + "/solar.jsp‘");
42                 out.println("</script>");
43             }else{
44                 chain.doFilter(request , response );
45             }
46         }else{
47             chain.doFilter(request , response );
48         }
49     }
50 }

二、在web.xml中配置拦截器  

 1 <session-config>
 2      <session-timeout>1</session-timeout>
 3 </session-config>
 4
 5 <filter>
 6     <filter-name>RequestFilter</filter-name>
 7     <filter-class>com.pv.utils.RequestFilter</filter-class>
 8 </filter>
 9 <filter-mapping>
10     <filter-name>RequestFilter</filter-name>
11     <url-pattern>*.jsp</url-pattern>
12 </filter-mapping>
时间: 2024-08-11 07:47:12

session失效后跳转到登陆页面的相关文章

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

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

session过期跳转到登陆页面并跳出iframe框架的两个方法

最近在做拦截器,判断用户登录后操作超时,失去权限然后要重新登录,但是用的iframe,返回的登陆页总是在框架中显示,我百度了下,总是只有其中一个方法,现在分享下两种解决方法,希望对你们有帮助: 方法一: 一般使用filter过滤用户是否登录,如果用户没有登陆则转向登陆页面,这时候可以使用response.sendRedirect().但当在页面上使用了iframe后,发现被重定向的只是父页面中的iframe区域,登陆页面内容显示在该区域中.说明在过滤器中发送重定向请求时,是在iframe页面发送

好友列表右键菜单进行Ajax请求时直接跳转至登陆页面

今天在做右键菜单,当点击重命名进行Ajax请求时,并没有向后台发送数据而是直接跳转到了首页.朕百思不得其解,后来在前台页面发现一个问题: <li><a href='#' onclick="renameContactsFunction()">重命名</a></li> 原来就是这个herf='#'惹的祸.当我点击时候,页面会跳转到'#'这个路径而不是进行Ajax请求.将上面那段代码变成 <li><a onclick=&quo

关于session失效如何跳转到login页中的问题

原文:关于session失效如何跳转到login页中的问题 源代码下载地址:http://www.zuidaima.com/share/1550463697652736.htm 这是刚刚一牛友问到的一个问题,我给他做的一个简单的demo,看不懂可以随时在群里找我,我是 苏-木木-11187 (可以运行起来,重点是看拦截器怎么写和怎么配的) 项目源码截图

easyUI iframe中请求Session失效后iframe内跳转到首页的解决方案

最近用户easyUI搭了一套前端,后台是spring mvc + shiro,如果前端页面超过session过期时间再操作,iframe内的内容就会跳转到登录页面,而不是整个页面跳转到登录页. 原因:iframe内的请求因为请求超时后返回登录页面,还是会填充到iframe中. 解决方案: 1. 登录页中的body部分加入判断,载入页面时如果发现当前窗口不是顶级窗口,就将顶级窗口的内容更新为当前窗口的内容. 部分代码如下: </script> //判断当前窗口是否有顶级窗口,如果有就让当前的窗口

shiro控制登陆成功后跳回之前的页面

登陆之后跳回之前的页面是在做登陆注册模块时遇到的一个需求,也是很有必要的.若用户直接访问登陆页面,那可以控制它直接到首页,但是要用户没有登陆直接访问自己的购物车等需要经过身份认证的页面,或者因为session超时,用户需要重新登陆,那么这个时候跳回之前的页面就是一件提升用户体验的事情了.实现这一功能,暂时想到两种方法,一是用ajax的方式登陆,这样直接在当前页面弹窗让用户登录既可,二是把用户未登录前的url存在session中,login成功之后先检查session中是否存在这样的一个url.

JSP中解决session超时跳转到登陆页面并跳出iframe框架或局部区域的方法

//方法1: 重定向到登录页,但是不支持跳出iframe//response.sendRedirect("/dormitory/toLoginPage"); //方法2:以输出页面并请求到登录页面的形式跳转到登录页面,可以跳出iframe(推荐)PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<script>"); ou

Django里自定义用户登陆及登陆后跳转到登陆前页面的实现

因为下一步要和公司的UM帐号作集成,所以分离出登陆模块,及实现其基本功能是必不可少的. 登陆倒容易,但要实现在登陆后,跳转到登陆前的网页,且显示用户的登陆状态,花了点时间查找代码, 测试了五六种方式,终于搞定.连语法都OK啦.. login.html: {% extends "xxxx/index.html" %} {% load staticfiles %} {% block title %}用户登陆 {% endblock %} {% block heading %} <h1

在子页面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, S