`

springmvc拦截器实现登录功能

    博客分类:
  • SSM
 
阅读更多

比较拦截器和过滤器的区别。 拦截器可配置多个,可定义拦截前中后执行的方法,可以调用业务组件代码。

拦截器使用更加灵活,推荐使用拦截器。

 

第一步,新建一个拦截器类

public class LoginInterceptor implements HandlerInterceptor{
	/**
	 * 调用前执行此方法。
	 */
	@Override
	public boolean preHandle(HttpServletRequest request,
			HttpServletResponse response, Object handler) throws Exception {
		//获取请求URL
		String uri = request.getRequestURI();
		//URL:login.jsp是公开的;这个demo是除了login.jsp是可以公开访问的,其它的URL都进行拦截控制  
		if(uri.indexOf("login")>=0){
			return true;
		}
		//获取session
		HttpSession session = request.getSession();
		String username = (String)session.getAttribute("username");
		if(username != null){
			return true;
		}
		//不符合条件的,跳转到登录界面  
        request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request, response); 
		return false;
	}

	@Override
	public void postHandle(HttpServletRequest request,
			HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
		// TODO Auto-generated method stub
		System.out.println("==================>>执行postHandle");
	}
	/**
	 * handler 执行完成后调用此方法。
	 */
	@Override
	public void afterCompletion(HttpServletRequest request,
			HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
		// TODO Auto-generated method stub
		System.out.println("==================>>执行afterCompletion");
	}

}

 配置拦截器

<!-- 5拦截器配置 -->
	 <mvc:interceptors>
	 	<mvc:interceptor>
	 		<mvc:mapping path="/**"/>
	 		<bean class="com.soecode.lyf.interceptor.LoginInterceptor"></bean>
	 	</mvc:interceptor>
	 </mvc:interceptors>

 

第二步 编写登录控制器

@Controller
public class LoginController {
	@RequestMapping(value="/login",method = RequestMethod.POST)
	public String login(HttpSession session,String username,String password,Model model){
		session.setAttribute("username", username);
		model.addAttribute("username", username);
		return "redirect:book/list";
	}
	
	@RequestMapping(value="/logout",method = RequestMethod.POST)
	public String logout(HttpSession session){
		session.invalidate();
		return "redirect:/WEB-INF/jsp/login.jsp";
	}
}

 

第三步  测试。

请求书籍预定页面,跳转到登录界面。



 输入账号后,提交登录,成功进入页面



 

 

  • 大小: 13.8 KB
  • 大小: 32.9 KB
分享到:
评论

相关推荐

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

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

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

    本实验报告将探讨如何利用 SpringMVC 的拦截器(Interceptor)来实现用户登录权限验证,确保只有已登录的用户才能访问特定的受保护资源。 首先,我们来看一下实验的基本步骤: 1. 创建 `User` 类:这是表示用户...

    springmvc拦截器实现登录验证

    在本场景中,我们探讨的是如何利用拦截器来实现登录验证功能,确保只有经过身份验证的用户才能访问受保护的资源。 首先,我们需要了解Spring MVC的拦截器工作原理。拦截器链是由多个拦截器组成,每个拦截器都有`...

    SpringMVC拦截器实现登录认证

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

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

    在本文中,我们讨论了三种解决SpringMVC拦截器拦截静态资源文件的方法,并对这些方法的优劣进行了分析。 方案一是在拦截器中排除静态资源路径。在SpringMVC的配置文件中(通常是spring-mvc.xml),可以通过配置元素...

    springMVC拦截器项目

    SpringMVC 拦截器项目是一个典型的 Web 应用开发示例,它利用 SpringMVC 框架中的拦截器(Interceptor)机制来实现特定的功能,如权限控制、日志记录、性能统计等。SpringMVC 是 Spring 框架的一部分,专为构建基于 ...

    SpringMVC拦截器实现单点登录

    SpringMVC 拦截器实现单点登录是一种常见的安全控制机制,主要用于确保在同一时间只有一个用户能够使用同一账号进行操作。这种功能在多用户、多设备登录的环境中尤为重要,可以防止用户账号被盗用或者误操作。 单点...

    SpringMVC配置拦截器实现登录控制的方法

    4. SpringMVC中的拦截器实现登录控制的流程:首先配置拦截器,指定需要拦截的URL路径和排除的URL路径(如登录页面和静态资源路径等)。拦截器的实现类中,preHandle方法中首先检查请求的URI是否在排除的URL列表中,...

    SpringMVC拦截器源代码.zip

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

    Springmvc登录拦截器Demo

    本文将深入探讨如何使用Spring MVC的拦截器实现登录验证,并提供相关知识点。 1. **Spring MVC 拦截器简介** Spring MVC的拦截器是基于Servlet的Filter的一种扩展,它允许开发者在请求被控制器处理之前或之后执行...

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

    以上就是使用`SessionListener`、持久化`Session`和`Springmvc拦截器`实现单点登录的基本原理和实现步骤。通过这样的设计,可以有效地提升用户体验,同时确保系统的安全性。在实际项目中,还需要根据具体需求进行...

    SpringMVC拦截器例子详解

    - 使用Java配置时,可以通过`@EnableWebMvc` 注解启用Web MVC配置,并在`WebMvcConfigurer` 实现类中重写`addInterceptors()` 方法来注册拦截器。 3. **自定义拦截器**: - 自定义拦截器需要继承`...

    SpringMVC拦截器

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

    SpringMvc 拦截器

    在实际应用中,拦截器可以结合Spring Security进行权限控制,例如检查用户是否已登录,或者在处理完请求后记录操作日志。还可以利用`ModelAndView`对象在`postHandle`方法中修改视图数据,以实现动态页面布局或添加...

    springmvc 拦截器

    自定义拦截器需要实现Spring MVC提供的HandlerInterceptor接口或 extend AbstractHandlerInterceptorAdapter抽象类。在自定义的拦截器类中,重写preHandle、postHandle和afterCompletion方法,编写相应的业务逻辑。...

    SpringMVC拦截器源码.rar

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

    SpringMVC 拦截器实现分析.docx

    在Spring MVC框架中,拦截...综上所述,Spring MVC的拦截器是实现细粒度控制和增强应用程序功能的重要手段,通过合理利用拦截器,开发者可以实现许多核心业务逻辑之外的通用功能,同时保持Controller代码的简洁和专注。

    SpringMVC-12 拦截器

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

    SpringMVC中的拦截器-拦截器方法的作用和执行顺序.avi

    SpringMVC中的拦截器-拦截器方法的作用和执行顺序.avi

    SSM+Ajax+maven+拦截器实现登录功能

    在这个项目中,我们将重点讨论如何利用SSM框架结合Ajax和Maven,以及使用拦截器来实现登录功能。 首先,**Spring**作为核心容器,管理着应用中的bean和依赖注入,提供了AOP(面向切面编程)和事务管理等功能。在...

Global site tag (gtag.js) - Google Analytics