`

使用(Filter)过虑器实现对Session是否过时的判断

阅读更多

使用(Filter)过虑器实现对Session是否过时的判断
 
 
在开发时,在第个页面,或者BaseAction对Session是否超时正行判断,但随着项目越来越来.页面很的时候写起来会觉得烦,由于项目需要最近做了一个这样的例子。

    web.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <filter>
     <filter-name>sf</filter-name>
     <filter-class>com.pdw.websystem.SessionFilterImpl</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>sf</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>3</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <session-config>
   <session-timeout>2</session-timeout>
  </session-config>
  <listener>
   <listener-class>com.pdw.websystem.SessionListenerImpl</listener-class>
  </listener>
</web-app>

 

SessionFilterImpl.java文件如下:

package com.pdw.websystem;


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.UnavailableException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


public class SessionFilterImpl implements Filter ...{


    protected String encoding = null;


    protected FilterConfig filterConfig = null;


    protected boolean ignore = true;

    public void destroy() ...{

        this.encoding = null;
        this.filterConfig = null;

    }


    /** *//**
     * Select and set (if specified) the character encoding to be used to
     * interpret request parameters for this request.
     *
     * @param request The servlet request we are processing
     * @param result The servlet response we are creating
     * @param chain The filter chain we are processing
     *
     * @exception IOException if an input/output error occurs
     * @exception ServletException if a servlet error occurs
     */
    public void doFilter(ServletRequest request, ServletResponse response,
                         FilterChain chain)
 throws IOException, ServletException ...{
    
     HttpServletRequest hrequest=(HttpServletRequest)request;
     HttpServletResponse hresponse=(HttpServletResponse)response;
     HttpSession session=hrequest.getSession();
     if(session.getAttribute("name")==null)...{
      hresponse.sendRedirect("logon.jsp");
     }
        chain.doFilter(request, response);

    }


    /** *//**
     * Place this filter into service.
     *
     * @param filterConfig The filter configuration object
     */
    public void init(FilterConfig filterConfig) throws ServletException ...{

    }
}

 

使可轻松实现对Session是否超时的判断

分享到:
评论

相关推荐

    j2ee项目使用filter和memcached实现session服务器

    本项目通过结合使用Filter(过滤器)和Memcached来实现一个高效的session服务器,以解决跨服务器会话共享的问题。 首先,让我们详细了解一下`Filter`。在Java Web开发中,Filter是Servlet API的一部分,允许开发者...

    spring boot 拦截器拦截/Filter 过滤session案例

    在本文中,我们将深入探讨如何在Spring Boot应用中使用拦截器(Interceptor)和过滤器(Filter)来处理用户的登录session。这两个组件都是Spring框架的重要部分,它们在处理HTTP请求和响应时发挥着关键作用。 首先...

    自己实现的spring-session

    就去redis中查看是否有此id的记录,如果没有就新建session,如果有,还是新建session,并把redis中此session的相关数据赋值给新建的session,最后保存sessionId到cookie,cookie的maxAge设置为-1,仅对当前会话有效...

    spring session实现session共享

    4. **Filter**: 为了实现Session共享,Spring Session 使用一个自定义的Servlet过滤器(`DelegatingSessionFilter`),这个过滤器负责拦截HTTP请求,处理Session相关操作。 5. **Spring Boot集成**: 如果使用Spring...

    使用过滤器实现判断用户是否登录验证.

    在Web开发中,确保用户身份的安全性...总的来说,使用过滤器实现用户登录验证是一种常见的实践,它允许我们集中管理权限控制,提高代码的可维护性。同时,通过合理的配置和扩展,可以适应不同规模和需求的Web应用程序。

    osgi session共享 支持springmvc 配置个filter即可

    标题中的“osgi session共享 支持springmvc 配置个filter即可”表明我们要讨论的是在OSGi(Open Service Gateway Initiative)环境中,如何通过Spring MVC并利用Filter来实现多个服务之间的Session共享。OSGi是一种...

    学习Spring-Session+Redis实现session共享

    ### Spring-Session与Redis结合实现Session共享 在分布式系统中,单点登录(Single Sign-On,简称SSO)成为一种常见的需求。为了实现这一目标,就需要解决不同服务器间Session共享的问题。Spring-Session正是为此而...

    jsp filter 过滤器判断用户是否登录

    下面我们就通过分析一个具体的示例代码来详细了解如何使用JSP Filter过滤器来判断用户是否已经登录。 #### 示例代码分析 首先,我们来看一下示例中的过滤器类`RightFilter`: ```java import javax.servlet....

    改进基于filter的远程分布式session存储

    6. **安全性考虑**:Filter还可以用于增强Session的安全性,比如检查Session是否过期,防止Session劫持或Session固定攻击。 7. **负载均衡**:在分布式环境中,Filter可以参与到负载均衡决策中,根据Session的存在...

    spring redis session共享实现步骤

    在集群环境中,需要配置多个节点,并可能使用Sentinel或Cluster管理器来发现和管理节点。 总的来说,Spring Session与Redis的结合提供了一种高效且可扩展的Session共享解决方案,尤其适合大型分布式系统的应用场景...

    M商城V0.7(使用Filter验证Session)

    M商城V0.7通过Filter进行Session验证,实现了对用户登录状态的有效管理,确保了用户操作的安全性和系统的稳定性。本文将围绕这个主题,详细讲解其背后的原理、实现方式以及相关的源码分析。 首先,Filter在Java Web...

    过滤器验证用户是否已经登录

    为了能够使用 Servlet 过滤器实现用户对 JSP 页面访问的合法性验证,需要根据用户登录号和密码等与数据库中的信息相比较,若能匹配成功,则是用户登录成功,就用 session 对象存储该用户的标识。 知识点4: Servlet ...

    Struts2:利用filter、session实现访问控制和身份认证[收集].pdf

    在 Web 应用程序中,身份认证和访问控制是非常重要的安全机制,本文将介绍如何使用 Struts2 中的 Filter 和 Session 实现访问控制和身份认证。 身份认证和访问控制的必要性 在 Web 应用程序中,身份认证和访问控制...

    使用filter验证session用户和页面缓存问题处理

    综上所述,通过使用Java的Servlet Filter,我们可以实现对用户session的有效验证,防止未授权访问,并且可以控制页面不被浏览器缓存,提高系统的安全性。在实际开发中,我们可能还需要结合其他安全措施,如CSRF防护...

    filter过滤器实现权限访问控制以及同一账号只能登录一台设备

    2. **Filter实现**:创建一个自定义的`Filter`类,检查每个请求的`Session`中是否存在登录信息。如果不存在或者登录信息过期,则重定向到登录页面。 3. **权限判断**:在`Filter`中,可以进一步检查请求的资源是否...

    过滤器对于session周期的控制

    ### 过滤器对于Session周期的控制 在探讨如何通过`OpenSessionInViewFilter`来有效管理Hibernate中的Session生命周期之前,我们需要先理解Session及其生命周期的基本概念。 #### Session与生命周期 在Hibernate...

    session+filter+cookie综合练习

    这是一个对session+filter+cookie练习的小项目;使用cookie实现了验证码的点击更换和验证,使用filter防止用户非法登录和使用session实现记住用户名。 此资源在学生资源部分连接了数据库,但在用户的登录验证方面...

    单点登录的demo(使用cookie+filter实现)

    在这个“单点登录的demo(使用cookie+filter实现)”中,我们将深入探讨如何利用Cookie和Filter技术来实现一个简单的SSO系统。 **一、Cookie基础** Cookie是Web服务器存储在用户浏览器上的一小段数据,用于在用户与...

    jsp servlet过滤器,登陆验证 获取session

    而`过滤器(Filter)`是Servlet API的一部分,它提供了一种机制来拦截请求和响应,实现诸如登录验证、字符编码转换、性能监控等功能。在这个场景中,我们关注的是使用过滤器进行登录验证,以及如何利用`session`来...

    Filter(过滤器)简介和工作原理

    Filter 的基本功能是对 Servlet 容器调用 Servlet 的过程进行拦截,从而在 Servlet 进行响应处理的前后实现一些特殊的功能。 Filter 的工作原理 当在 web.xml 中注册了一个 Filter 来对某个 Servlet 程序进行拦截...

Global site tag (gtag.js) - Google Analytics