入门SpringMVC之Interceptor拦截器

简介: SpringMVC中的Interceptor拦截器,它的主要作用是拦截指定的用户需求,并进行相应的预处理与后处理。

SpringMVC中的Interceptor拦截器,它的主要作用是拦截指定的用户需求,并进行相应的预处理与后处理。

其拦截的时间点在”处理器映射器根据用户提交的请求映射出了所要执行的处理器类,并且也找到哟啊执行该处理器类的处理器适配器,在处理器适配器执行处理器之前”。

在处理器映射器映射出所要执行的处理器类时,已经将拦截器与处理器组合为了一个处理器执行链,并返回给了中央调度器。


SpringMVC中的Interceptor拦截器

是针对请求和响应进行额外处理,在请求和响应的过程中添加预处理,后处理和最终处理。


拦截器执行的时机:

1:preHandle():在请求被处理之前进行操作

2:postHandle();在请求被处理之后,但结果还没有渲染前进行操作,可以改变响应结果

3:afterCompletion:所有的请求响应结束后执行善后工作,清理对象,关闭资源。

拦截器的实现方式

1、继承HandlerInterceptorAdapter的父类

2、实现HandlerInterceptor接口(推荐方式)

拦截器实现步骤

1、在session中存储用户信息,用于进行权限验证。

2、实现HandlerInterceptor接口,重写preHandle()方法

3、springMVC.xml文件中注册拦截器

1、在session中存储用户信息,用于进行权限验证。

//验证是否登录

@RequestMapping("userLogin")

public String login(String username, String password, HttpServletRequest request) {

   UserDao mapper = sqlSessionAuto.getMapper(UserDao.class);

   User admin = mapper.selectByName(username);

   try {

       if (admin.getUsername().equals(username) && admin.getPassword().equals(password)) {

           int id = admin.getId();

           //session中存储用户信息

           request.getSession().setAttribute("id", id);

           return "main";

       } else {

           request.setAttribute("msg", "用户名或密码错误!");

           return "forward:/index.jsp";

       }

   } catch (Exception e) {

       e.printStackTrace();

       request.setAttribute("msg", "用户名或密码错误!");

       return "forward:/index.jsp";

   }

}


11.png


2、实现HandlerInterceptorAdapter接口,重写preHandle()方法

public class LoginInterceptor implements HandlerInterceptor {

   @Override

   public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)

           throws Exception {

       //判断是否登录过

       if (request.getSession().getAttribute("id") == null){

           request.setAttribute("msg","还未登录!");

           request.getRequestDispatcher("/index.jsp").forward(request,response);

           return false;

       }else {

           return true;//放行

       }

   }

}


3、springMVC.xml文件中注册拦截器

   

       

           

           

           

           

           

           

       

   

如有错误请指正,谢谢

目录
相关文章
|
5月前
|
JSON 前端开发 Java
Spring MVC入门必读:注解、参数传递、返回值和页面跳转(下)
Spring MVC入门必读:注解、参数传递、返回值和页面跳转(下)
61 0
|
5月前
|
XML JSON 前端开发
SpringMVC入门的注解、参数传递、返回值和页面跳转---超详细教学
SpringMVC入门的注解、参数传递、返回值和页面跳转---超详细教学
68 1
|
5月前
|
JSON 前端开发 Java
Spring MVC入门必读:注解、参数传递、返回值和页面跳转(上)
Spring MVC入门必读:注解、参数传递、返回值和页面跳转(上)
44 0
|
6月前
|
前端开发 Java Maven
“深入探究SpringMVC的工作原理与入门实践“
“深入探究SpringMVC的工作原理与入门实践“
32 0
|
8月前
|
设计模式 JSON 前端开发
2021-08-11Spring MVC,入门项目搭建及流程,springMVC的适配器和映射器,基于注解的controller,映射请求,方法返回值,requestmapping注解
2021-08-11Spring MVC,入门项目搭建及流程,springMVC的适配器和映射器,基于注解的controller,映射请求,方法返回值,requestmapping注解
39 0
|
9月前
|
SQL XML 前端开发
Java高级期末复习:Java EE框架整合开发入门到实战——Spring+Spring MVC+MyBatis微课版
Java高级期末复习:Java EE框架整合开发入门到实战——Spring+Spring MVC+MyBatis微课版
263 0
QGS
|
11月前
|
XML JSON 前端开发
手搭手入门SpringMVC
关于Tomcat服务器的目录 bin: 该目录是Tomcat服务器的命令文件存放的目录,打开关闭Tomcat conf: 该目录是Tomcat服务器的配置文件存放目录。(Server.xml文件中可以配置端口号,默认Tomcat端口是8080)
QGS
63 0
|
前端开发 Java 应用服务中间件
一文带你入门SpringMVC
Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。 Spring MVC的特点: 轻量级,简单易学 高效 , 基于请求响应的MVC框架 与Spring兼容性好,无缝结合 约定优于配置 功能强大:RESTful、数据验证、格式化、本地化、主题等 简洁灵活
112 1
一文带你入门SpringMVC
|
Java Spring 容器
SpringMVC注解开发入门案例
SpringMVC注解开发入门案例
SpringMVC注解开发入门案例
|
XML Java 数据格式
SpringMVC - @RequestJson之HandlerMethodArgumentResolver 从入门到青铜(六)
SpringMVC - @RequestJson之HandlerMethodArgumentResolver 从入门到青铜(六)
90 0