当前位置: 首页 > news >正文

51zwd做网站网站后台是做什么的

51zwd做网站,网站后台是做什么的,企业网站建设费用 珠海,专业网页制作什么好拦截器(Interceptor) 概念:是一种动态拦截方法调用的机制,类似于过滤器。Spring框架中提供的,用来动态拦截控制器方法的执行。 作用:拦截请求,在指定的方法调用前后,根据业务需要执行…

拦截器(Interceptor)

概念:是一种动态拦截方法调用的机制,类似于过滤器。Spring框架中提供的,用来动态拦截控制器方法的执行。

作用:拦截请求,在指定的方法调用前后,根据业务需要执行预先设定的代码。

快速入门

定义拦截器

实现HandlerInterceptor接口,并重写其所有方法。 

@Component
public class LoginInterceptor implements HandlerInterceptor {@Override //目标方法执行前的执行,返回true放行,返回false不放行public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {return HandlerInterceptor.super.preHandle(request, response, handler);}@Override //目标方法执行后执行public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);}@Override //视图渲染执行后执行,最后执行public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {HandlerInterceptor.super.afterCompletion(request, response, handler, ex);}
}

注册拦截器

@Configuration
public class WebConfig implements WebMvcConfigurer {@AutowiredLoginInterceptor loginInterceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(loginInterceptor).addPathPatterns("/**");}
}

拦截器-拦截路径

拦截路径

含义

举例

/*

一级路径

能匹配/depts,/emps,/login,不能匹配 /depts/1

/**

任意级路径

能匹配/depts,/depts/1,/depts/1/2

/depts/*

/depts下的一级路径

能匹配/depts/1,不能匹配/depts/1/2,/depts

/depts/**

/depts下的任意级路径

能匹配/depts,/depts/1,/depts/1/2,不能匹配/emps/1

拦截器-执行流程

 Filter与Interceptor区别

  • 接口规范不同:过滤器需要实现Filter接口,而拦截器需要实现HandlerInterceptor接口。
  • 拦截范围不同:过滤器Filter会拦截所有的资源,而Interceptor只会拦截Spring环境中的资源。

 登录验证

  • 获取请求url。 判断请求url中是否包含login,如果包含,说明是登录操作,放行。
  • 获取请求头中的令牌(token)。
  • 判断令牌是否存在,如果不存在,返回错误结果(未登录)。
  • 解析token,如果解析失败,返回错误结果(未登录)。
  • 放行。

                                     

Interceptor的实现

@Slf4j
@Component
public class LoginInterceptor implements HandlerInterceptor {@Override //目标方法执行前的执行,返回true放行,返回false不放行public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {//获取urlString url = request.getRequestURL().toString();log.info("url路径:{}",url);//获取tokenString token = request.getHeader("token");log.info("token:{}",token);//如果没有Tokenif (!StringUtils.hasLength(token)) {extracted(response);return false;}//解析tokentry {JwtUtils.parseJwt(token);} catch (Exception e) {e.printStackTrace();extracted(response);return false;}return true;}private void extracted(HttpServletResponse response) throws IOException {Result noLogin = Result.error("用户未登录");response.setCharacterEncoding("UTF-8");response.getWriter().write(JSONObject.toJSONString(noLogin));}@Override //目标方法执行后执行public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);}@Override //视图渲染执行后执行,最后执行public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {HandlerInterceptor.super.afterCompletion(request, response, handler, ex);}
}

配置Interceptor

@Configuration
public class WebConfig implements WebMvcConfigurer {@AutowiredLoginInterceptor loginInterceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(loginInterceptor).addPathPatterns("/**").excludePathPatterns("/login");}
}

测试

 

 

http://www.yayakq.cn/news/506394/

相关文章:

  • 网站的推广方式南宁网络建站
  • 大连公司做网站建设单位网站经费请示
  • 红鹊豆网络网站站建设长春网页设计培训
  • 做一斗地主网站多少钱佛山seo优化排名
  • 平阳网站建设坪山网站建设流程
  • 营销型外贸网站制作抓取网站访客qq代码
  • 广州市番禺区住房和建设局网站钓鱼网站的主要危害
  • 儿童网站模板网站业务维护
  • 网站开发的整个流程网站备案信息注销
  • 网站结构如何优化智慧团建pc端官网
  • 网站联合推广方案怎么提高网站的访客量
  • 政务网的门户网站建设高级网站开发工程师证
  • 手表购物网站排名123cnn网址之家
  • 浙江网站开发工程师黄页网站软件应用大全
  • 泰安做网站网络公司扁平化wordpress
  • 手机网站图片切换网站建设 菜鸟教程
  • 门户网站开发的背景和意义wordpress 书店
  • 松岗做网站哪家便宜wordpress 添加登录界面
  • 网站源码分享环球设计官网网站
  • 上海专业网站建设服务做电影网站会被捉吗
  • 涪陵网站建设 优帮云做网站的前途
  • 国内免费建站网站如何制作游戏
  • 山东省城乡住房建设厅网站wordpress简体中文
  • 网站开发分为前端和后台网站的风格设计包括哪些内容
  • 哪家网站建设服务好中国最好的网站建设
  • 增城网站建设推广成都网站建设公司是什么意思
  • 网站模板后台怎么做建筑招标信息网官网
  • 吴江建设局网站阿里云认证网站建设
  • 可以做电算化的网站优秀企业网站设计欣赏
  • 网站建设设计780元全包山西响应式网站建设公司