ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

springMVC拦截器

2020-01-15 16:02:05  阅读:240  来源: 互联网

标签:拦截器 preHandle quot springMVC SomeInterceptor public out


拦截器作用:在SpringMVC请求处理期间,特定位置做拦截,插入一些额外处理逻辑。拦截点有以下3个位置:

在controller处理前(preHandle)

在controller处理后(postHandle)

在处理完毕,响应输出前(afterCompletion)拦截器组件编写需要实现HandlerInterceptor接口,接口有preHandle、postHandle、afterCompletion方法分别对应前面3个拦截点。在Boot中,拦截器配置需要采用Java配置模式。

@Component

//扫描

public class SomeInterceptor implements HandlerInterceptor{

  • public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
          throws Exception {
      System.out.println("-----进入SomeInterceptor拦截器的PreHandle处理------");
      HttpSession session = request.getSession();
      if(session.getAttribute("user")==null){
          //未登录,拦截器后续处理
          response.setContentType("text/plain;charset=UTF-8");
          PrintWriter out = response.getWriter();
          out.print("{\"msg\":\"未登录用户,身份不合法\"}");
          return false;
      }else{
          return true;//登录了,放过去
      }

    }
  • @Configuration//配置类,也具有扫描功能
    public class InterceptorConfiguration implements WebMvcConfigurer{
    @Autowired
    private SomeInterceptor some;

    public void addInterceptors(InterceptorRegistry registry) {
      String[] patterns = {
          "/dept/list",
          "/dept/get"};
      registry.addInterceptor(some).addPathPatterns(patterns);
    }

标签:拦截器,preHandle,quot,springMVC,SomeInterceptor,public,out
来源: https://www.cnblogs.com/liyanzi/p/12197184.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有