java拦截器的配置_Java 拦截器配置及使用「建议收藏」

java拦截器的配置_Java 拦截器配置及使用「建议收藏」packagecom.panshi.ProjectInterceptor.Interceptor;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.stereotype.Component;importorg.springframework.util.StringUtils;importor…

大家好,又见面了,我是你们的朋友全栈君。

packagecom.panshi.ProjectInterceptor.Interceptor;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.stereotype.Component;importorg.springframework.util.StringUtils;importorg.springframework.web.servlet.ModelAndView;importorg.springframework.web.servlet.handler.HandlerInterceptorAdapter;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;

@Componentpublic class recordInterceptor extendsHandlerInterceptorAdapter {private final static Logger logger= LoggerFactory.getLogger(“interceptor”);/*** preHandle方法是进行处理器拦截用的,顾名思义,该方法将在Controller处理之前进行调用,

* SpringMVC中的Interceptor拦截器是链式的,可以同时存在多个Interceptor,

* 然后SpringMVC会根据声明的前后顺序一个接一个的执行,

* 而且所有的Interceptor中的preHandle方法都会在Controller方法调用之前调用。

* SpringMVC的这种Interceptor链式结构也是可以进行中断的,

* 这种中断方式是令preHandle的返回值为false,当preHandle的返回值为false的时候整个请求就结束了。*/@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throwsException {

logger.info(“拦截了:”+request.getRequestURI());

HttpSession session=request.getSession();if(!StringUtils.isEmpty(session.getAttribute(“userId”))){/*** 相关验证

**/

return true;

}else{

response.sendRedirect(“/logins”);return false;

}//return super.preHandle(request, response, handler);

}/*** 这个方法只会在当前这个Interceptor的preHandle方法返回值为true的时候才会执行。

* postHandle是进行处理器拦截用的,它的执行时间是在处理器进行处理之 后, 也就是在Controller的方法调用之后执行,

* 但是它会在DispatcherServlet进行视图的渲染之前执行,也就是说在这个方法中你可以对ModelAndView进行操作。

* 这个方法的链式结构跟正常访问的方向是相反的,也就是说先声明的Interceptor拦截器该方法反而会后调用,

* 这跟Struts2里面的拦截器的执行过程有点像,

* 只是Struts2里面的intercept方法中要手动的调用ActionInvocation的invoke方法,

* Struts2中调用ActionInvocation的invoke方法就是调用下一个Interceptor或者是调用action,

* 然后要在Interceptor之前调用的内容都写在调用invoke之前,要在Interceptor之后调用的内容都写在调用invoke方法之后。*/@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throwsException {

}/*** 该方法也是需要当前对应的Interceptor的preHandle方法的返回值为true时才会执行。

* 该方法将在整个请求完成之后,也就是DispatcherServlet渲染了视图执行, 这个方法的主要作用是用于清理资源的,*/@Overridepublic void afterCompletion(HttpServletRequest request,HttpServletResponse response, Object handler, Exception ex) throwsException {

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135287.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • uniapp 复制粘贴_小程序封装键盘输入框

    uniapp 复制粘贴_小程序封装键盘输入框本篇没啥营养,就是告诉不熟悉uniapp的开发者怎么完成长按复制,懂得朋友别浪费时间1.给text组件设置对应平台的对应属性,在安卓手机上的效果2.直接设置剪切板的内容uni.setClipboardData(OBJECT)<textstyle=”@longpress=’copyText’>长按触发longpress事件</text>//对应事件copyText(){ uni.setClipboardData({ dat…

    2022年9月1日
    2
  • SpringBoot常用注解集合「建议收藏」

    SpringBoot常用注解集合「建议收藏」前言这里我们不会将springboot全部的注解都一个一个分析一遍,因为现在普遍都是前后端分离开发,所以之前用在很多的模板视图解析上的注解现在已经不怎么用到了这里就没再提。有需要的同学可以去看我的其他关于框架的专栏。Part.1:SpringMVC工作原理因为springboot其实就是spring和SpringMVC的合体版本,所以分析它的注解其实就是分析spring和SpringMVC的注解,所以我们可以先看一下SpringMVC的工作原理(具体的解析可以看我的关于SpringMVC框架的专栏),

    2022年8月20日
    5
  • 深入理解CMA【转】

    深入理解CMA【转】

    2021年6月11日
    102
  • sql 未明确定义列_查询块具有不正确的结果列数

    sql 未明确定义列_查询块具有不正确的结果列数ORA-00918:未明确定义列:你在做多表查询的时候出现了字段重复的情况,因为你有时候会对字段进行重新命名,表A的A1字段与表B的B1字段同时命名成了C,这时候就会出现未明确定义列,假设A表中有一个字段名叫:A_B_C,实体类就会有个叫ABC的字段,sql你写成:SELECT*FROM(SELECTDISTINCTA.,B.B1ASABC这样写是没有问题的,但是:SELECT*FROM(SELECTDISTINCTA.,B.B1ASA_B_C就有问题了;

    2022年10月4日
    1
  • SpringBoot 配置Mybatis两种方式

    SpringBoot 配置Mybatis两种方式目前SpringBoot被各企业广泛使用,在SpringBoot结合Mybatis使用时,有的人将mapper.xml存放到resouce的目录下,有的想把Mapper.xml和接口放到一起,但是这样/就会存在Mapper.xml加载不了,导致方法无法找到,现在咱们看看两种方式的配置。首先说第一种:也就是网上说的最多的一种,添加依赖,我就不细说了。1.在application.pr…

    2022年6月24日
    33
  • 树莓派自动连接蓝牙_树莓派能搜到wifi但是连不上

    树莓派自动连接蓝牙_树莓派能搜到wifi但是连不上将USB无线网卡插入树莓派任一USB接口,插上网线,接通电源;在个人电脑上通过ssh连接树莓派,默认帐号是pi,默认密码是raspberry(如何通过ssh连接树莓派,请自行网上查找,当然如果树莓派已

    2022年8月5日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号