代码:
首先在spring的mvc的xml中加入
<!-- mvc拦截器 -->
<mvc:interceptors>
<mvc:interceptor> <!-- 可以增加多个拦截器 -->
<mvc:mapping path="/**"/> <!-- 需要拦截的 -->
<mvc:exclude-mapping path="/"/> <!-- 不需要拦截的 -->
<mvc:exclude-mapping path="/login"/>
<mvc:exclude-mapping path="/logout"/>
<mvc:exclude-mapping path="/manage/**"/>
<bean class="com.smarcloud.control.aop.SessionHelper" />
</mvc:interceptor>
</mvc:interceptors>
上面配置了 spring将拦截那些,不拦截那些访问。当中的com.smarcloud.control.aop.SessionHelper这个类是要自己写的,拦截后进入这个类
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Repository;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import com.smarcloud.control.util.Constant;
@Repository //将这个类交给spring容器管理
public class SessionHelper extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
//Constant.LOGIN_USER_SESSION 为session的名字
Object obj = request.getSession().getAttribute(Constant.LOGIN_USER_SESSION);
if(obj==null){
request.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(request, response);
return false;
}
else{
return super.preHandle(request, response, handler);
}
}
}
这个各类将拦截的访问中的request中寻找session 如果是空的,则回到登入页面.
分享到:
相关推荐
自定义拦截器是扩展Spring MVC功能、添加自定义行为的一种常见方式。以下是对自定义拦截器实现步骤的详细解释: ### 1. 自定义拦截器类 #### 1.1 继承 `HandlerInterceptorAdapter` 你可以选择继承`...
HandlerInterceptorAdapter是Spring MVC提供的一般拦截器适配器,通过继承该类并重写其方法,我们可以轻松创建自定义的拦截逻辑。 以下是HandlerInterceptorAdapter的三个关键方法: 1. `preHandle...
接下来,我们需要实现拦截器 `LoginInterceptor`,这个类通常继承自 `HandlerInterceptorAdapter`,并重写 `preHandle()` 方法。在这个方法中,我们可以检查会话中的用户信息,如果用户未登录,则阻止进一步的请求...
这个类通常会继承`HandlerInterceptorAdapter`,这是一个Spring提供的抽象拦截器类,包含了`preHandle()`, `postHandle()`, 和 `afterCompletion()` 这三个关键方法。我们将主要关注`preHandle()` 方法,因为它是...
在Spring Boot中,拦截器是通过实现`HandlerInterceptor`接口或者继承`HandlerInterceptorAdapter`抽象类来创建的。 2. **工作流程** 当一个HTTP请求到达Spring Boot应用时,Spring MVC会按照配置的拦截器顺序逐个...
在Spring MVC中,拦截器是通过实现`HandlerInterceptor`接口或者继承`HandlerInterceptorAdapter`抽象类来创建的。 `HandlerInterceptor`接口定义了三个方法: 1. `preHandle(HttpServletRequest request, ...
创建一个Spring MVC拦截器需要实现`HandlerInterceptor`接口或者继承`HandlerInterceptorAdapter`抽象类。例如,我们创建一个名为`LoggingInterceptor`的拦截器: ```java public class LoggingInterceptor extends...
要创建一个自定义的拦截器,你需要继承`HandlerInterceptorAdapter`类,并重写其中的三个方法: 1. `preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)`: 在目标处理器执行前...
在这个例子中,`TstCfg`类是自定义的拦截器,它扩展了`HandlerInterceptorAdapter`,这是一个抽象的拦截器基类,提供了默认的实现,简化了拦截器的编写。 接下来,我们来看`TstCfg`类中的具体拦截逻辑: ```java ...
首先,我们需要创建一个自定义的拦截器类,该类需要继承自Spring MVC的`HandlerInterceptor`接口或实现`HandlerInterceptorAdapter`抽象类。这里我们选择后者,因为它提供了一些默认的空实现,使我们的开发更加方便...
首先,我们需要创建一个自定义的拦截器类,它需要继承Spring MVC的`HandlerInterceptor`接口或者`HandlerInterceptorAdapter`抽象类。`HandlerInterceptor`接口包含三个方法:`preHandle()`、`postHandle()`和`...
【拦截器原理及案例】 拦截器是Spring框架中的一个重要组件,它允许我们在处理请求之前、之后以及处理完成后插入自定义的逻辑。与过滤器相比,拦截器提供了更细粒度的控制,可以在多个阶段进行干预。 ### 1. 概念...
Spring Boot中,我们可以使用Spring MVC的`@RestControllerAdvice`或者Spring Web的`HandlerInterceptorAdapter`来实现拦截器。例如: ```java public class MyInterceptor extends HandlerInterceptorAdapter { @...
public class LoginInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { /...
在上面的代码中,我们定义了一个名为LoginInterceptor的拦截器,该拦截器继承自HandlerInterceptorAdapter。我们可以在preHandle方法中根据请求的URL来决定是否拦截请求。 结论 本文讲解了SpringBoot配置拦截器...
接下来,需要编写拦截器类,继承自 `HandlerInterceptorAdapter`,并使用 `@Component` 注解将其注册到 Spring 容器中: ```java import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory....
实现拦截器可以自定义实现 HandlerInterceptor 接口,也可以通过继承 HandlerInterceptorAdapter 类,后者是前者的实现类。例如,下面是一个判断用户是否登录的拦截器的实现例子: ```java public class ...
创建自定义拦截器需要继承`HandlerInterceptorAdapter`抽象类,并重写相关方法。例如: ```java public class AuthInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle...
Spring Boot中的拦截器是通过实现`HandlerInterceptorAdapter`接口来创建的。下面是一个简单的登录拦截器示例: ```java public class LoginInterceptor extends HandlerInterceptorAdapter { private final ...