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

杭州企业推广网站wordpress设置标题颜色

杭州企业推广网站,wordpress设置标题颜色,小金县建设局网站,在线学习网站建设Springboot 过滤器、拦截器、全局异常处理 一 过滤器#xff08;Filter#xff09; 过滤器是JavaWeb三大组件#xff08;Servlet#xff0c;Filter#xff0c;Listener#xff09;之一。 Filter可以把对资源的请求拦截下来#xff0c;从而实现一些功能。 注意#…Springboot 过滤器、拦截器、全局异常处理 一 过滤器Filter 过滤器是JavaWeb三大组件ServletFilterListener之一。 Filter可以把对资源的请求拦截下来从而实现一些功能。 注意过滤器一般用于一些通用的操作比如登录校验统一编码处理敏感字符处理等。 1.定义过滤器 1.创建一个类实现 javax.servlet.Filter接口并且实现其方法。 2.配置过滤器 在类上增加 WebFilter 注解配置拦截资源的路径并且在引导类上增加ServletComponentScan开启Servlet的组件支持。 注意Filter 是JavaWeb的组件并非Spring组件所以还需要在引导类上使用ServletComponentScan开启对Filter组件的支持 WebFilter public class CustomFilter implements Filter {Overridepublic void init(FilterConfig filterConfig) throws ServletException {// 初始化方法Web服务启动创建Filter时调用一次。可以不用重写Filter.super.init(filterConfig);}Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws ServletException, IOException {// 拦截到请求时调用该方法。是拦截器的核心filterChain.doFilter(servletRequest,servletResponse);}Overridepublic void destroy() {// 销毁方法服务器关闭时调用一次可以不重写Filter.super.destroy();} }拦截器Filter的核心方法是 doFilter(),处理相关逻辑的代码几乎都写在此处。 可以通过WebFilter注解的属性urlPatterns来配置需要进行过滤的资源信息。 示例使用 urlPatterns /*配置过滤所有请求 WebFilter(urlPatterns /*) public class CustomFilter implements Filter {Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws ServletException, IOException {//放行对资源的请求filterChain.doFilter(servletRequest,servletResponse);} }3.OncePerRequestFilter 在实际使用中推荐使用OncePerRequestFilter 它是Spring框架提供的一个抽象类用于确保过滤器只在每个请求中被调用一次。它继承自 GenericFilterBean类并在 doFilter 方法中添加了对请求是否已被过滤的判断逻辑。 OncePerRequestFilter 和 Filter 的根本区别在于 OncePerRequestFilter 提供了一个确保过滤器只在每个请求中被调用一次的机制而 Filter 接 口本身并没有提供这样的机制。 Configuration public class JwtAuthenticationFilter extends OncePerRequestFilter {Overrideprotected void doFilterInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, FilterChain filterChain) throws ServletException, IOException {filterChain.doFilter(httpServletRequest, httpServletResponse);}} }而且使用OncePerRequestFilter的实现类并不需要在项目的启动类上增加ServletComponentScan注解。 二 拦截器Interceptor 1.拦截器概述 拦截器是一种动态拦截方法调用的机制与过滤器类似。是Spring框架中提供的用来动态拦截控制器方法的执行。 它的主要作用是拦截请求在指定的方法前后调用根据业务需要执行预先设定的代码。 2.定义拦截器Interceptor 定义一个拦截器继承HandlerInterceper,并实现其方法。 HandlerInterceptor中的方法都提供了默认实现可根据业务需求来决定重写哪些方法。 注意要为拦截器添加Component注解将其交给IOC容器管理。 Component public class CustomInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {//在目标资源方法执行前执行返回true放行false 不放行return true;}Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {//在目标资源方法之后执行HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);}Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {//在整体请求完成之后调用HandlerInterceptor.super.afterCompletion(request, response, handler, ex);} }Component注解是Spring框架中用于表示一个类为Spring组件的通用注解通过添加Component注解可以告诉Spring容器在项目初始化时将该类实例化为一个Bean,并由Spring容器管理。HandlerInterceptor是SpringMVC框架中的拦截器接口用于拦截请求的处理过程并进行响应的处理。可以通过实现HandlerInterceptor类来自定义拦截器实现更灵活的业务控制。 3.注册拦截器 自定义的拦截器需要进行注册。可实现WebMvcConfigurer 接口实现 addInterceptors方法为其添加新的拦截器。 Configuration public class SpringWebConfigurer implements WebMvcConfigurer {//方式1如果在定义拦截器的时候已经添加了Component注解则直接使用注入的方式将拦截器对象注册到InterceptorRegistry对象中Resourceprivate CustomInterceptor customInterceptor;Overridepublic void addInterceptors(InterceptorRegistry registry) {// 使用 addPathPatterns 添加拦截路径支持数组// /**表示拦截所有资源属于 AntPathMatcher蚂蚁路径匹配器语法//方式1使用注入的对象registry.addInterceptor(customInterceptor).addPathPatterns(/**);//方式2也可以直接创建对象添加到InterceptorRegistry对象中registry.addInterceptor(new CustomInterceptor()).addPathPatterns(/**);} }InterceptorRegistry是Spring框架中专门用来管理拦截器的集合类。通过InterceptorRegistry对象可以添加拦截器。并且指定它们的执行顺序。 WebMvcConfigurer是Spring框架中用于配置Mvc特性的接口通过实现WebMvcConfigurer接口可以对SpringMVC进行自定义配置包括添加拦截器资源处理器视图解析器等。 Configuration注解是Spring框架中用于表示配置类的注解通过添加Configuration注解可以告诉Spring容器该类是一个配置类其中包含了一些配置信息例如 Bean的定义Bean之间的依赖关系组件扫描等。 addPathPatterns方法用来配置需要拦截的资源路径。 excludePathPatterns方法用来配置不需要拦截的资源路径。 4.AntPathMatcher Ant风格的路径模式匹配AntPathMatcher支持以下通配符 ? 匹配一个字符* 匹配0个或多个字符** 匹配0个或多个目录 5.拦截路径 拦截路径的简单示意 6.过滤器和拦截器的执行流程 当过滤器与拦截器同时存在时它们的执行流程如下 dispatcherServlet的说明 dispatcherServlet是SpringMVC框架中的一个关键组件用于所有进入应用程序的请求并将其分派到相应的处理程序Controller进行处理. dispatcherServlet是一个Servlet,负责接收HTTP请求并根据请求的URL将请求分发给合适的Controller。 dispatcherServlet可以通过配置来定制各种行为包括URL映射视图解析异常处理等。是整个SpringMVC框架的核心负责协调各个组件的工作实现请求的处理和响应的生成。 执行流程说明 浏览器发送请求先到过滤器Filter过滤器Filter放行之后HTTP请求经过dispatcherServlet的派发到达拦截器Interceptor拦截器Interceptor放行之后请求才会真正进入处理程序Controller处理程序Controller生成响应结果将结果返回到拦截器Interceptor拦截器Interceptor最后再将结果返回过滤器Filter最后响应给浏览器 7.过滤器和拦截器的区别 接口规范不同过滤器需要实现Filter接口而拦截器需要实现HandlerInterceptor接口并且需要注册到InterceptorRegistry集合中。拦截范围不同过滤器会拦截所有的请求资源而拦截器只会拦截Spring环境中的资源。 三 全局异常处理 定义一个类并且使用 RestControllerAdvice 注解则表明我们定义了一个全局异常处理类。 然后创建方法来捕获异常并且通过ExceptionHandler注解来表明要捕获的异常类型。并且将该异常的对象作为形参传入方法中。 RestControllerAdvice public class GlobalExceptionHandler {ExceptionHandler(RuntimeException.class)public Result runtimeException(RuntimeException runtimeException) {return Result.err(runtimeException.getMessage());} }注意Result是一个自定义的统一响应格式类其中包含了响应代码响应消息和响应数据。并且定义了几个常用的静态方法。 以上示例中为保证返回格式统一所以使用了Result作为返回类型。 RestControllerAdviceRestControllerAdvice 用于定义一个全局的异常处理类它结合了 ControllerAdvice 和 ResponseBody 两个注解的功能。在 Spring Boot 应用中我们可以使用 RestControllerAdvice 注解来统一处理异常返回统一的错误信息给前端。ExceptionHandlerExceptionHandler 用于在 Spring MVC 控制器类中定义方法来处理特定类型的异常。当控制器中的方法抛出指定类型的异常时ExceptionHandler 注解的方法会被调用来处理该异常从而提供定制化的异常处理逻辑
http://www.pierceye.com/news/112405/

相关文章:

  • 网站网站制作400多少钱wordpress 会员积分
  • 天津网站建设首选津坤科技做视频网站用什么好处
  • wordpress ffmpegsem seo是什么意思呢
  • 九江建网站的公司做废钢那个网站好
  • 做网站官网需多少钱wordpress查看访问者ip
  • 美食网站php源码wordpress 文章消失
  • 四川住房和城乡建设厅网站万达网站建设
  • 网站运营一般做那些分析快手营销软件
  • 重庆大渡口建设网站站群搭建
  • 2018年网站开发技术动漫电影做英语教学视频网站
  • 设备管理系统网站模板网站开发基础知识试题
  • wordpress建立好的网站万能搜索网站
  • 杭州 高端网站建设wordpress 不显示ip
  • 校考前做试题的网站池州哪里有做网站
  • 四合一小说网站搭建教程WordPress主题资源
  • 网站制作com台州网站哪家专业
  • 网站怎么上百度阿里云网站建设
  • 全国最大的网站建设公司肇庆网络推广
  • 网站做301跳转需解析设计用哪些网站有哪些功能
  • 如何将网站添加到信任站点手机价格
  • 做网站显示上次登录时间代码深圳有哪些招聘网站
  • 网站开发可选择的方案页面设计说明
  • 手机付费咨询网站建设网站正能量免费推广软件晚上
  • 网站群建设技术规范seo收索引擎优化
  • 西安网站托管维护百度首页广告
  • 洛龙区网站设计建设免费网页小游戏
  • 建设摩托125图片大全优化大师怎么删除学生
  • 郑州哪家公司给国外做网站闵行网站推广
  • 微网站 开发提供坪山网站建设
  • 狗狗和人做网站centos6搭建wordpress