`
xurichusheng
  • 浏览: 346166 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

另一个 spring 拦截器

阅读更多
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import com.test.entity.Employee;

/**
* Spring 拦截器
*
* @author jhwen
*
*/
public class SessionInterceptor extends HandlerInterceptorAdapter {
  
    private final Logger logger = Logger.getLogger(SessionInterceptor.class);
  
    /**
     * 在业务处理器处理请求之前被调用
     */
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
            Object handler) throws Exception{
      
        //要排除拦截的请求
        String[] ignoreRegexs = new String[]{"login.do","checkCode.do"};
      
        //获取客户端请求URI
        String requestURI = request.getRequestURI();
      
        //获取客户端请求
        if(null!=requestURI && !"".equals(requestURI)){
            //不同的工程,substring(int paramInt1,int paramInt2)的paramInt1不同
            requestURI = requestURI.substring(8, requestURI.length());
        }
      
        for(int i=0; i<ignoreRegexs.length; i++){
          
            String ignoreRegex = ignoreRegexs[i];
          
            /**
             * 如果是login.do 和 checkCode.do, 则不做拦截
             */
            if(ignoreRegex.equals(requestURI)){
                return true;
            }
        }
      
        /**
         * 如果不是login.do(登录) 和 checkCode.do(检验验证码), 则做拦截,
         * 并且,判断是否已经登录
         */
        Employee emp = (Employee)request.getSession().getAttribute("emp");
      
        /**
         * 如果未登录,则不允许操作;
         * 如果已经登录,则允许做其他的操作.
         */
        if(null == emp){
            return false;
        }else{
            return true;
        }
    }  

}

Spring 的核心配置文件 applicationContext.xml:

<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
     <property name="interceptors">
         <list>
                <bean class="com.test.common.core.interceptor.SessionInterceptor" />
         </list>
     </property>
    </bean>

分享到:
评论

相关推荐

    Spring拦截器,高级参数绑定

    首先,我们创建一个Spring拦截器需要实现HandlerInterceptor接口或继承HandlerInterceptorAdapter抽象类。以下是一个简单的拦截器示例: ```java import org.springframework.web.servlet.HandlerInterceptor; ...

    Spring拦截器示例

    而Spring拦截器则是实现AOP的一种方式,它类似于Java的Servlet过滤器,可以在方法调用前后执行自定义的操作。 AOP拦截器在Spring中主要通过`HandlerInterceptor`接口或者`@AspectJ`注解来实现。下面我们将详细探讨...

    Flex-Spring拦截器

    在深入研究Flex-Spring拦截器时,理解Spring AOP的核心概念和AMF的工作原理是至关重要的。通过这样的集成,开发者可以在保持Flex客户端的灵活性和交互性的同时,利用Spring的强大功能来处理复杂的业务逻辑和系统管理...

    spring拦截器的简单例子

    Spring 拦截器是 Spring 框架中一个非常重要的组件,主要用于处理请求和响应,实现业务逻辑之前和之后的预处理和后处理。它为开发者提供了在 MVC 模式下实现统一处理机制的机会,比如权限验证、日志记录、性能监控等...

    spring boot 登录拦截器

    在Spring Boot应用中,登录拦截器是一个至关重要的组件,它用于保护特定的Web资源,确保只有经过身份验证的用户才能访问。Spring Boot结合了Spring MVC框架,提供了方便的方式来实现这样的拦截器。本篇文章将深入...

    spring MVC(新增拦截器demo)

    每个拦截器都可以决定是否允许请求继续传递到下一个拦截器或控制器。 2. **创建自定义拦截器**:首先,我们需要创建一个实现了`HandlerInterceptor`接口的类。这个接口中有三个方法: - `preHandle...

    spring拦截器的一个简单实例

    本文将深入探讨Spring拦截器的一个简单实例,通过源码分析和实际操作,帮助你理解其工作原理。 首先,我们需要了解Spring MVC的处理流程。当一个HTTP请求到达服务器时,Spring MVC会按照配置的DispatcherServlet...

    使用CGLIB模拟spring的拦截器

    在`intercept`方法中,我们实现了类似Spring拦截器的功能,调用`preHandle`和`postHandle`方法,并根据`preHandle`的结果决定是否执行目标方法。 最后,`afterCompletion`方法的调用通常需要手动管理,因为它涉及到...

    java + spring boot +jpa 拦截器分库分表demo

    创建一个自定义的JPA拦截器,比如`ShardingInterceptor`,这个拦截器将在每个JPA的查询或保存操作之前/之后执行。在拦截器中,我们需要根据业务规则(例如:用户ID、订单号等)计算出目标库和表的索引,然后修改SQL...

    自己spring boot 拦截器

    下面是一个简单的自定义拦截器示例: ```java import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet....

    spring配置JSON拦截器VIEW

    1. **创建拦截器类**:首先,我们需要创建一个类,实现HandlerInterceptor接口或继承HandlerInterceptorAdapter,然后在这些方法中编写我们需要的逻辑,比如检查JSON数据的格式、权限验证等。 2. **注册拦截器**:...

    CXF3.0+Spring3.2 自定义拦截器

    在提供的压缩包文件"wbInter"中,可能包含了一个示例或模板,用于演示如何在CXF3.0和Spring3.2环境中创建和配置自定义拦截器。通过学习和理解这些文件,你可以更深入地了解如何在实际项目中应用这一技术。 总之,...

    springboot spring aop 拦截器注解方式实现脱敏

    在Spring AOP中,我们可以定义一个`@Aspect`类,这个类包含若干个`@Before`,`@After`,`@Around`等注解的方法,这些方法会在相应的切点(pointcut)执行前、后或周围执行。在数据脱敏的场景下,我们可能需要在响应...

    spring-boot添加 拦截器

    为了实现登录拦截,我们需要创建一个拦截器类,例如`LoginInterceptor`,并实现`HandlerInterceptor`接口: ```java import org.springframework.stereotype.Component; import javax.servlet....

    Spring MVC 拦截器

    在Spring MVC中,拦截器接口由`HandlerInterceptor`定义,而`HandlerInterceptorAdapter`类则提供了一个适配器模式的默认实现,简化了拦截器的开发过程。`HandlerInterceptor`接口包含以下三个核心方法: 1. **`...

    struts2整合spring实现拦截器

    在本文中,我们将深入探讨如何实现Struts2与Spring的集成,以及利用拦截器来增强应用的功能。 首先,Struts2 是一个基于MVC设计模式的开源Web框架,它提供了强大的控制器层,使得开发者可以更方便地处理HTTP请求和...

    SpringBoot拦截器原理解析及使用方法

    在SpringBoot框架中,拦截器是一个非常重要的组件,它能够在请求到达控制器(Controller)之前或者之后对请求进行拦截,以完成一些预处理或后处理操作。拦截器通常用于权限检查、日志记录、性能监控等场景。 拦截器...

    Spring Cloud OpenFeign - - - >拦截器

    初学者很容易将 Spring MVC 拦截器 和 Spring Cloud OpenFeign 拦截器搞混,误以为OpenFeign拦截器...Spring Cloud OpenFeign拦截器发生在两个不同的服务之间,在服务消费端发送请求远程调用服务提供方时进行拦截处理。

    SpringMvc 拦截器

    在Spring MVC框架中,拦截器(Interceptor)是一个强大的工具,用于在请求被控制器处理之前或之后执行特定的逻辑。它们可以用来实现通用的功能,如权限验证、日志记录、性能统计等,避免在每个控制器方法中重复编写...

    Spring Controller拦截器配置

    本文将详细介绍如何在Spring MVC中配置一个简单的拦截器来实现用户Session的存在性检查,以及当Session不存在时,自动跳转到登录页面。 #### 二、XML配置详解 拦截器可以通过XML文件进行配置。下面的示例展示了...

Global site tag (gtag.js) - Google Analytics