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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • h5文件简介_h5特性

    h5文件简介_h5特性H5文件是层次数据格式第5代的版本(HierarchicalDataFormat,HDF5),它是用于存储科学数据的一种文件格式和库文件。由美国超级计算中心与应用中心研发的文件格式,用以存储和组织大规模数据.H5将文件结构简化成两个主要的对象类型:1数据集dataset,就是同一类型数据的多维数组2组group,是一种容器结构,可以包含数据集和其他组,若一个文件中存放了不同种类的数据…

    2022年9月10日
    0
  • 启发式算法(Heuristic Algorithm)

    启发式算法(Heuristic Algorithm)启发式算法是一种技术,这种技术使得在可接受的计算成本内去搜寻最好的解,但不一定能保证所得的可行解和最优解,甚至在多数情况下,无法阐述所得解同最优解的近似程度。Heuristics可以等同于:实际经验

    2022年7月2日
    27
  • VM虚拟机连不上网解决办法「建议收藏」

    VM虚拟机连不上网解决办法「建议收藏」VM虚拟机不能上网的问题解决    说在前面的话:很多网友看了我的文章后,虚拟机还是不能上网,就联系我帮忙,结果帮他们给弄好后,都说怪自己太粗心,没有仔细看文章。我不是怕网友麻烦我,我是真诚的希望各位要首先认真仔细地看完文章,一步一步按照文章操作,一般自己都可以解决问题 。确实不行的,欢迎联系我!         关于VM虚拟机上网的问题,有很多网友求助我,说虚拟机不能上网。今

    2022年4月19日
    948
  • 手把手教你搭建 vue 环境

    手把手教你搭建 vue 环境

    2021年10月11日
    42
  • SpringBoot2.0.4整合elasticsearch为5.6.10

    网上找了很一些,很多跑不起来,可能是我的环境和介绍的环境不一样,自己搞一个! 环境说明:spring boot 使用2.0.4elasticsearch为5.6.10本地安装ES集群为 6.x版本第一步使用IDEA创建Spring boot web项目,使用spring boot 使用2.0.4版本, elasticsearch为5.6.10 <parent…

    2022年2月27日
    46
  • linux 开启allow_url_fopen,如何开启allow_url_fopen函数[通俗易懂]

    linux 开启allow_url_fopen,如何开启allow_url_fopen函数[通俗易懂]有些程序比如dede和discuz,都会有需要打开这个函数,不打开这个函数的甚至无法安装!如何解决这个问题呢?这里给出打开这个函数的终极解决办法:1.首先确保你拥有服务器的操作权限,如果只是虚拟空间客户,那么你就联系主机商帮助操作吧;2.打开PHP的配置文件php.ini,如果你的主机是win2003该文件在C:\WINDOWS目录下,直接用记事本打开就可以,如果是apache那么就是在你的php…

    2022年7月16日
    13

发表回复

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

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