`

SpringMVC拦截器简单配置

阅读更多

web.xml代码

 

<servlet>
		<servlet-name>dispatcherServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		
		<!-- 指定Spring配置文件位置 -->
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:mybatis-config.xml, classpath:springmvc-servlet.xml</param-value>
		</init-param>
		
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>dispatcherServlet</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
	
	<filter>  
	    <filter-name>encodingFilter</filter-name>  
	    	<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
	    <init-param>  
	        <param-name>encoding</param-name>  
	        <param-value>UTF-8</param-value>  
	    </init-param>
	    <init-param>
		    <param-name>forceEncoding</param-name>  
		    <param-value>true</param-value>  
	    </init-param>
	</filter>  

 

 

 springmvc-servlet.xml代码

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:mvc="http://www.springframework.org/schema/mvc" 
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd    
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd    
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd    
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">

	<!-- 对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 -->
	<context:component-scan base-package="com.ssm.*"></context:component-scan>
    
	<mvc:annotation-driven/>
	
	<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
	<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
		<property name="messageConverters">
			<list>
				<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
			</list>
		</property>
	</bean>
	
	<!-- 拦截器 -->  
    <mvc:interceptors>  
           <bean class="com.interceptor.MyInterceptor"/>
    </mvc:interceptors> 
	
	<!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<!-- 如果使用jstl的话,配置下面属性 -->
		<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>	
	</bean>
</beans>

 

 

拦截器代码

package com.interceptor;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import com.ssm.service.UserService;

public class MyInterceptor implements HandlerInterceptor{

	@Override
	public void afterCompletion(HttpServletRequest request,
			HttpServletResponse response, Object arg2, Exception arg3)
			throws Exception {
		
		System.out.println("afterCompletion");
	}

	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response,
			Object arg2, ModelAndView model) throws Exception {
		
		System.out.println("postHandle");
	}

	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
			Object arg2) throws Exception {
		
		System.out.println("进入拦截器....");
		
//		String url = request.getMethod();
//		System.out.println("getMethod:" + url);
//		打印getMethod:GET
		
//		String url2 = request.getRequestURI();
//		System.out.println("getRequestURI:" + url2);
//		打印getRequestURI:/04-day26-springmvc_mybatis/action/checkLogin
		
//		String url3 = request.getServletPath();
//		System.out.println("getServletPath:" + url3);
//		打印getServletPath:/action/checkLogin
		
//		StringBuffer url4 = request.getRequestURL();
//		System.out.println("getRequestURL:" + url4);
//		打印getRequestURL:http://localhost:8080/04-day26-springmvc_mybatis/action/checkLogin
		
//		String url = request.getContextPath();
//		System.out.println(url);
//		打印04-day26-springmvc_mybatis
		
		//判断Session缓存里面的user是否存在,如果存在则说明用户登入过,放行
		if(request.getSession().getAttribute("user") != null){
			System.out.println("用户已经登入过了...");
			return true;
		}else{
			//判断没有登入过的用户,是不是提交登入,如果是则放行
			if("/action/checkLogin".equals(request.getServletPath())){
				System.out.println("登入路径为" + request.getServletPath() +",正确,登入成功!");
				return true;
			//以上两者都不是,则是违法操作,进行拦截
			}else{
				System.out.println("------->你被拦截了...");
				//这里需要注意的是,拦截后如果用response.sendRedirect(arg0)返回页面,那么将不能用request.setAttribute("")传值;
				request.setAttribute("msg", "操作违法,请重新登入!");
				request.getRequestDispatcher("../index.jsp").forward(request, response);
				return false;
			}
		}
	}

	
}

 

 

分享到:
评论

相关推荐

    防止SpringMVC拦截器拦截js等静态资源文件的解决方法

    1. 方案一通过在拦截器配置中排除特定的静态资源路径,可以比较精确地控制哪些请求被拦截器处理,哪些不处理。这种方法适合于静态资源和动态资源请求分得比较明确的情况。 2. 方案二通过利用默认的Servlet来处理...

    springMVC拦截器项目

    在这个项目中,你可以了解到如何配置和使用拦截器,以及如何将它们集成到 SpringMVC 应用中。 1. **SpringMVC 概述**: SpringMVC 提供了一个模型-视图-控制器架构,用于处理 HTTP 请求和响应。它简化了 MVC 应用...

    SpringMVC拦截器源代码.zip

    这个名为“SpringMVC拦截器源代码.zip”的压缩包可能包含了Spring MVC拦截器的实现源码,这对于理解和学习如何自定义拦截器以增强应用功能非常有帮助。 1. **拦截器的基本概念** - 拦截器是AOP(面向切面编程)的...

    SpringMVC拦截器

    ### SpringMVC拦截器 #### 一、拦截器概述 拦截器(Interceptor)是一种轻量级、低侵入式的AOP实现方式,在SpringMVC框架中有着广泛的应用。它主要用于处理那些与业务逻辑无关但又频繁出现的功能需求,如日志记录...

    SpringMvc 拦截器

    接下来,我们来创建一个简单的自定义拦截器。首先,我们需要创建一个实现`HandlerInterceptor`接口的类: ```java import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;...

    企业级开发-SpringMVC使用拦截器实现用户登录权限验证实验报告.docx

    配置 SpringMVC 拦截器,我们需要在 `springmvc-config.xml` 文件中添加以下内容: ```xml ... ... ``` 此外,还需要在 `web.xml` 文件中配置 SpringMVC 的前端控制器 DispatcherServlet: ```xml ...

    springmvc 拦截器

    5. **配置拦截器** 在Spring MVC的配置文件(通常是`dispatcher-servlet.xml`)中,我们需要声明一个`&lt;mvc:interceptors&gt;`元素来定义拦截器。在其中,可以创建一个或多个`&lt;mvc:interceptor&gt;`子元素,每个子元素代表...

    SpringMVC拦截器例子详解

    下面将详细解释Spring MVC拦截器的工作原理、配置和实际应用。 1. **工作原理**: - 拦截器是基于AOP(面向切面编程)思想实现的,它通过预处理器和后处理器模式,对HTTP请求进行拦截。 - 当一个请求到达Spring ...

    SpringMVC 拦截器 实现 登录退出功能

    综上所述,本项目是一个适合初学者了解和实践SpringMVC拦截器功能的小程序。通过学习和实践,你可以掌握如何使用拦截器实现登录验证和安全退出,同时加深对Intelli IDEA的使用理解。在实际应用中,拦截器常用于权限...

    SpringMVC拦截器源码.rar

    SpringMVC拦截器是基于AOP(面向切面编程)的概念实现的,它们遵循HandlerInterceptor接口。这个接口定义了三个方法: 1. `preHandle`: 在请求被处理器处理之前调用,返回`true`表示继续执行处理器,`false`则中断...

    SpringMVC-12 拦截器

    在本教程“SpringMVC-12 拦截器”中,我们将深入探讨如何实现和配置自定义拦截器,以及多个拦截器的执行顺序。 首先,我们来了解如何创建一个自定义的拦截器。在Spring MVC中,我们需要创建一个实现了`...

    Springmvc登录拦截器Demo

    4. **配置拦截器** 创建好拦截器后,需要在Spring MVC的配置中声明并注册它。这可以通过`&lt;mvc:interceptors&gt;`标签在XML配置中完成,或者在Java配置类中使用`addInterceptors()`方法添加。 5. **排除不需要拦截的...

    SpringMvc自定义拦截器(注解)代码实例

    总的来说,Spring MVC的自定义拦截器结合注解的使用,使得在应用程序中添加额外的处理逻辑变得简单且高效。通过自定义拦截器,开发者能够更好地控制请求的生命周期,实现更精细的控制和功能扩展,提高应用的可维护性...

    springmvc拦截器实现登录验证

    这通常在Spring配置类中完成,使用`@Configuration`和`@EnableWebMvc`注解,并且通过`addInterceptors()`方法将拦截器添加到`InterceptorRegistry`。 4. **配置拦截路径**:在注册拦截器时,需要指定拦截哪些URL。...

    SpringMVC拦截器实现登录认证

    SpringMVC拦截器是实现登录认证的一种常见方法,它允许开发者在请求被实际处理之前或之后执行特定的逻辑。本文将深入探讨如何利用SpringMVC拦截器来实现这一功能。 首先,了解SpringMVC的核心组件是必要的。...

    SpringMVC拦截器配置及运行流程解析

    SpringMVC拦截器配置及运行流程解析 SpringMVC拦截器是指在SpringMVC框架中,用于拦截和处理请求的组件。拦截器可以在请求处理之前、之后或抛出异常时执行某些操作,例如身份验证、日志记录、异常处理等。SpringMVC...

    使用SessionListener+持久化Session+Springmvc拦截器实现单点登录

    3. **配置Springmvc拦截器**:创建自定义拦截器,实现`HandlerInterceptor`接口,覆盖`preHandle`方法进行会话检查。 4. **单点登录逻辑**:在`preHandle`中,检查当前请求的会话是否有效,无效则引导至登录页面,...

    springmvc拦截器入门实例.zip

    1. **配置文件**:如 `springmvc-servlet.xml`,其中会配置 DispatcherServlet,以及在 `&lt;mvc:interceptors&gt;` 标签内注册拦截器。 2. **拦截器类**:自定义的拦截器类,实现 `HandlerInterceptor` 接口,包含上述三...

    springMVC拦截器

    本文将详细介绍 SpringMVC 拦截器的原理、配置方式以及异常处理机制。 ### 一、SpringMVC 拦截器原理 SpringMVC 的拦截器基于 Java 的动态代理机制,当一个请求到达 DispatcherServlet 时,会先经过一系列预定义或...

    SpringMVC拦截器运行原理及配置详解

    SpringMVC拦截器运行原理及配置详解 SpringMVC拦截器是SpringMVC框架中的一种机制,用于在 Controller 方法执行前、后或抛出异常时执行某些操作的拦截器,拦截器可以对Controller中的方法进行拦截和过滤,从而实现...

Global site tag (gtag.js) - Google Analytics