`
lxz8157
  • 浏览: 36031 次
  • 来自: ...
最近访客 更多访客>>
社区版块
存档分类
最新评论

会话超时过滤器

阅读更多
package com.authority.filter;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class SessionTimeOutFilter implements Filter
{

    private static final long serialVersionUID = 1L;

    private FilterConfig      filterConfig;

    private String            forward          = "";


     /**
     * 初始化过滤器配置
     */
    public void init(FilterConfig config) throws ServletException
    {
        this.filterConfig = config;
        forward = filterConfig.getInitParameter("logout");
    }

    /**
     * 运行过滤器
     */
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException,
            ServletException
    {
        HttpServletRequest servletRequest = (HttpServletRequest) request;
        HttpServletResponse servletResponse = (HttpServletResponse) response;
        HttpSession session = servletRequest.getSession();
        //获取当前页面文件名
        String url = servletRequest.getRequestURI();

        url = url.substring(url.lastIndexOf("/") + 1, url.length());

        try
        {
            //排除后台不作权限控制的页面名
            String exclude = "login.do,base.jsp,error.jsp,menubase.jsp,message.jsp"
                    + "redirect.jsp,taglibs.jsp,login.jsp,forward.jsp";
            //当获取url文件名与不做权限验证的页面不同时
            if (exclude.indexOf(url) == -1)
            {
                //获取网站访问根目录
                String accessPath = servletRequest.getContextPath();

                String userid = (String) session.getAttribute("userid");
                //当用户名,和密码不存在或者为空字符串时
                if (userid == null || userid.trim().length() == 0)
                {
                    servletResponse.sendRedirect(accessPath + forward);
                    //将这个请求url放在session中以便登录成功后能自动跳转到该url
                    session.setAttribute("requrl", url);
                    return;
                }
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        filterChain.doFilter(request, response);
    }

     /**
     * 销毁
     */
    public void destroy()
    {
    }

}
分享到:
评论

相关推荐

    JAVA用户登录超时过滤器和文件配置

    在Java Web开发中,用户登录超时过滤器是一种常见的安全机制,用于检查用户是否已登录并保持其会话状态。这个过滤器会在用户访问受保护的页面之前进行拦截,如果发现用户会话已经超时或者不存在,将重定向到登录页面...

    过滤器进行登录操作

    3. **会话管理**:过滤器可以用来管理用户的会话,确保会话的有效性。当用户登录后,将用户信息存储在session中,并在每次请求时检查session是否超时。 4. **URL映射**:通过配置过滤器的`<url-pattern>`,我们可以...

    .NET MVC授权过滤器验证登录

    主要有四种类型的过滤器:授权过滤器、操作结果过滤器、异常过滤器和资源过滤器。授权过滤器是最早执行的,通常用于进行身份验证和授权检查。 要创建自定义的授权过滤器,我们需要继承`System.Web.Mvc....

    jsp登录验证(含过滤器)

    本项目"jsp登录验证(含过滤器)"主要关注如何利用过滤器实现用户登录验证,并在会话(Session)中设置全局变量以跟踪用户的登录状态。以下将详细讲解这个知识点。 1. **JSP基础** JSP是基于Java的服务器端脚本...

    过滤器和监听器的使用

    1. **会话管理**:通过HttpSessionListener监控会话的创建、过期,可以实现会话超时提醒、统计在线用户等功能。 2. **资源初始化和销毁**:ServletContextListener可以在应用启动和停止时执行初始化和清理工作,如...

    bboss 安全认证过滤器功能介绍

    6. **会话超时与退出**:为了防止会话固定攻击,BBoss框架会设置会话超时机制。此外,用户可以通过点击退出按钮来清除会话,此时`SYSAuthenticateFilter`会确保所有相关的认证信息从会话中移除。 通过阅读`...

    简单的JSP登入过滤器类写法

    但需要注意的是,这只是一个基础示例,实际生产环境中,应考虑更复杂的逻辑,如会话超时、错误处理、以及与其他安全框架(如Spring Security)的集成。此外,为了提高代码可维护性和可扩展性,通常会将过滤器逻辑...

    javaEE(上下文_监听器_过滤器) ppt

    Java EE(Java Platform, Enterprise Edition)是用于构建企业级分布式应用程序的框架,它提供了一系列标准接口和组件模型,包括上下文、监听器和过滤器。这些概念是Java EE开发中的核心组成部分,对于理解和优化Web...

    servlet过滤器1

    过滤器可以用于多种用途,包括但不限于安全控制、日志记录、数据转换等。 首先,让我们深入理解什么是Servlet过滤器。在Web应用中,当用户发起一个请求到服务器,该请求会经过一系列预先定义好的过滤器。这些过滤器...

    监听器 过滤器 详解

    2. **HttpSessionListener**:监听HttpSession的创建和销毁,可以统计在线用户数量,或在会话超时后清除敏感数据。 3. **ServletRequestListener**:监听ServletRequest对象的创建和结束,可用于数据校验或记录请求...

    model2+监听+过滤器

    在Java Web开发中,Model2架构、监听器和过滤器是三个重要的概念,它们共同构建了一个功能完善的Web应用程序。现在,让我们深入理解这三个组件以及它们如何协同工作。 **Model2架构**:Model2是MVC(Model-View-...

    Servlet过滤器与监听器.doc

    Servlet过滤器和监听器是Java Servlet技术中两个重要的组件,它们极大地增强了Web应用程序的功能和灵活性。Servlet过滤器在Servlet 2.3规范中被引入,主要用于处理通用任务,如请求预处理、响应后处理,以及诸如编码...

    J简单的springmvc包括拦截、session设置,超时跳转

    这可以通过监听器、过滤器或者在拦截器中实现。例如,在拦截器的`preHandle()`方法中,检查当前请求的Session是否有效,如果发现Session已经过期,就通过`response.sendRedirect(String url)`重定向到登录页面。 在...

    listener和filter 监听器和过滤器的介绍以及简单使用(csdn)————程序.pdf

    - **HttpSessionListener**:监听HttpSession的创建和销毁,适用于记录在线用户数量、实现会话超时提醒等。 - **ServletRequestListener**:监控ServletRequest的创建和销毁,常用于统计请求量、分析请求信息等。 ...

    java基于用户会话的开发程序

    默认情况下,Java Web应用的会话超时时间为30分钟,开发者可以根据需求通过`setMaxInactiveInterval(int interval)`方法调整。超时设定是为了防止会话长时间未活动导致资源浪费,同时也是安全措施的一部分,防止会话...

    XML常用配置信息 过滤器 监听器

    ### XML常用配置信息详解:过滤器、监听器与Session会话闲置时间 #### 一、XML配置基础 在Java Web开发中,`web.xml`是一个非常重要的配置文件,它主要用于定义Web应用程序的基本结构和行为。该文件是用XML(可...

    四个有用的缓存,登陆字符编码,资源保护_过虑器

    如果用户未登录或会话超时,过滤器将重定向到登录页面。这种过滤器可以有效维护网站的安全性,防止未授权的访问。 3. **字符编码过滤器** 字符编码问题常常会导致乱码,尤其是在不同系统或浏览器之间交互时。字符...

    Mina2.0快速入门与源码剖析.docx

    Mina2.0 框架源码剖析主要包括了解 Mina2.0 的核心组件、框架的启动和关闭、会话管理、过滤器和编解码器的使用等。 知识点: * Mina2.0 的核心组件:IoAcceptor、IoSession、IoHandler * 框架的启动和关闭 * 会话...

    包括连接池,分页,过滤器,监听器等,实现了登陆,查询,分页等

    在IT行业中,尤其是在Web开发领域,连接池、分页、过滤器和监听器是四个非常重要的概念。这些技术被广泛应用于提升系统性能、优化用户体验以及维护应用状态。下面将详细阐述这四个知识点,并结合JSP(JavaServer ...

    Tomcat设置.doc

    在本文中,我们将深入探讨如何配置Tomcat,包括添加虚拟目录、配置JSP和Servlet、调整服务器端口、设置默认和错误页面、处理会话超时以及运用过滤器。 1. **增加虚拟目录** 要在Tomcat中添加虚拟目录,需要编辑`...

Global site tag (gtag.js) - Google Analytics