关于springmvc拦截器,springmvc拦截器配置

  关于springmvc拦截器,springmvc拦截器配置

  在SpringMVC中,我们谈到了拦截器,拦截器会在执行HandleMapping时检查我们访问的地址是否配置了拦截器,并在拦截器中实现一些功能。

  SpringMVC定义了拦截器接口HandlerInterceptor。这个接口定义了三个方法,这三个方法的调用都是在SpringMVC框架内完成的。当调用这三个方法时,它们的参数值也会从框架内部传入。

  我们先来看第一个方法,boolean preHandle()

  预处理方法,实现了处理器(控制器层,控制器)方法的预处理,意味着这个方法会在处理器方法执行之前执行,相当于拦截了处理器方法。框架会将请求和响应对象传递给这个方法,第三个参数是截取的处理器方法。如果preHandle方法返回true继续进程(比如调用下一个拦截器或处理器方法),返回false中断进程,我们就不再继续调用其他拦截器或处理器方法。这个时候,我们需要通过回应产生回应;

  也就是说,当请求到达我们的控制层方法时,会先进入这个方法,按照preHandle()方法。

  返回结果(真和假)以确定如何执行下一步。

  后两种方法是3360 voidpost handle()after completion()

  第一种方法是控制层方法执行完之后再执行,第二种方法是整个请求完成之后再执行。因为版本的原因,这两种方法用的比较少,这里可以做一个理解。

  然后我们将建立一个拦截器,看看发生了什么。

  //自己写一个类PreInterceptor实现HandlerInterceptor接口,重写preHandle方法public class PreInterceptor实现Handler Interceptor {//此方法返回true,请求才能顺利到达对应的处理方法,否则会被截获@ override public boolean pre handle(http servlet request request,http servlet response response,Handler)throws exception {//第三个参数是目标控制器对象http session session=request . getsession();//判断信息是否有效admin admin=(admin)session . get attribute( admin );if(admin==null){ response . get writer()。打印(202);返回false}else {返回true}}}然后你需要在配置文件中配置拦截器。

  !-配置拦截器-MVC 3360拦截器MVC 3360拦截器!-所有请求进入拦截器-MVC :映射路径=/* * !-指定哪些请求不输入拦截器-MVC :排除-映射路径=/login/login/MVC 3360排除-映射路径=/CSS/* */MVC 3360排除-映射路径=/images/* * /MVC 3360排除-映射路径=/js/* * /MVC 3360排除-映射路径=/**。html/!-拦截器实现类-bean id= log in class= com . ff . SSM . util . pre interceptor //MVC : interceptor/MVC 3360 interceptors这里我们以后端登录的控制器为例。

  @ rest controller @ request mapping(value=/log in )公共类log in controller { @ Autowired login service login service;@ post mapping(value=/log in )public common result Admin log in(Admin Admin,http session session){ common result common result;请尝试{ Admin Admin 1=log in service . log in(Admin);if(admin 1==null){ common result=new common result(201,账号或密码错误,admin 1);} else { session . set attribute( admin ,admin 1);共同结果=新共同结果(200,登录成功,admin 1);} } catch(exception){ common result=new common result(500,登录失败, );}返回commonResult}}如上,前端发起登录请求,我们配置了拦截器,会先进入拦截器,根据preHandle()方法决定。

  可以输入我们具体的登录方式吗?

  上面的控制器示例是用户的信息存储在会话中。我们每接受一个前端请求,就判断用户的信息在拦截器中是否仍然有效。如果有效,就放行;如果无效,将被拦截。所以前提是我们的登录请求一定不能被拦截,因为此时没有登录,用户信息为空。因此,我们在上面配置了不拦截登录请求或那些请求页面。

  以上是SpringMVC中拦截器的具体功能和实现。感谢阅读。

  关于SpringMVC拦截器的配置和使用的这篇文章到此为止,是一篇零基础入门的文章。关于SpringMVC拦截器的更多信息,请搜索热门IT之前的文章或者继续浏览下面的相关文章。我希望你以后能更多地支持流行音乐!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: