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

logo免费制作生成优化什么意思

logo免费制作生成,优化什么意思,疫情又要来了吗最新消息,自学做网站需要多久统⼀功能处理 1. 拦截器2. 统⼀异常处理3. 统⼀数据返回格式 1. 拦截器 Spring 中提供了具体的实现拦截器:HandlerInterceptor,拦截器的实现分为以下两个步骤: 创建⾃定义拦截器,实现 HandlerInterceptor 接⼝的 preHandle&…

统⼀功能处理

  • 1. 拦截器
  • 2. 统⼀异常处理
  • 3. 统⼀数据返回格式

1. 拦截器

Spring 中提供了具体的实现拦截器:HandlerInterceptor,拦截器的实现分为以下两个步骤:

  1. 创建⾃定义拦截器,实现 HandlerInterceptor 接⼝的 preHandle(执⾏具体⽅法之前的预处理)⽅法.
  2. 将⾃定义拦截器加⼊ WebMvcConfigurer 的 addInterceptors ⽅法中.

接下来使⽤代码来实现⼀个⽤户登录的权限效验,⾃定义拦截器是⼀个普通类,分为两步:

  1. 实现 HandlerInterceptor 接口
  2. 重写 preHandle 方法
public class LoginInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {HttpSession session = request.getSession(false);if (session != null && session.getAttribute("userinfo") != null) {return true; // 返回为真就通过, 反之就拦截}response.sendRedirect("/login.html");return false;}
}

然后就是将自定义的拦截器配置到系统当中:
总共分为三步:

  1. 添加 @Configuration 注解
  2. 实现 WebMvcConfigurer 接口
  3. 重写 addInterceptors 方法
@Configuration
public class AppConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**")// 拦截所有请求.excludePathPatterns("/**/*.html")// 放开不需要拦截的部分.excludePathPatterns("/user/login").excludePathPatterns("/user/reg");}
}

统⼀访问前缀添加
所有请求地址添加 api 前缀, 有两种方式:

  1. 通过方法添加
@Configuration
public class AppConfig implements WebMvcConfigurer {// 所有的接⼝添加 api 前缀@Overridepublic void configurePathMatch(PathMatchConfigurer configurer) {configurer.addPathPrefix("/api", c -> true);}
}
  1. 通过配置文件添加
server.servlet.context-path=/api

2. 统⼀异常处理

统⼀异常处理使⽤的是 @ControllerAdvice + @ExceptionHandler 来实现的,@ControllerAdvice 表示控制器通知类,@ExceptionHandler 是异常处理器,两个结合表示当出现异常的时候执⾏某个通知,也就是执⾏某个⽅法事件,具体实现代码如下:

@ControllerAdvice
@ResponseBody
public class ErrorAdive {@ExceptionHandler(Exception.class)public Object error(Exception e) {Map<String, Object> map = new HashMap<>();map.put("code", -1);map.put("data", null);map.put("msg", e.getMessage());return map;}}

以上⽅法表示,如果出现了异常就返回给前端⼀个 HashMap 的对象,其中包含的字段如代码中定义的那样. 我们可以针对不同的异常,返回不同的结果, 例如:

    @ExceptionHandler(NullPointerException.class)public Object nullPointerexceptionAdvice(NullPointerException e) {HashMap<String, Object> result = new HashMap<>();result.put("success", -1);result.put("message", "空指针异常:" + e.getMessage());result.put("data", null);return result;}

当有多个异常通知时,匹配顺序为当前类及其⼦类向上依次匹配

3. 统⼀数据返回格式

统⼀数据返回格式的优点有很多,⽐如以下⼏个:

  1. ⽅便前端程序员更好的接收和解析后端数据接⼝返回的数据.
  2. 降低前端程序员和后端程序员的沟通成本,按照某个格式实现就⾏了,因为所有接⼝都是这样返回的.
  3. 有利于项⽬统⼀数据的维护和修改.
  4. 有利于后端技术部⻔的统⼀规范的标准制定,不会出现稀奇古怪的返回内容.

统⼀的数据返回格式可以使⽤ @ControllerAdvice + 实现 ResponseBodyAdvice 的⽅式实现,具体实现代码如下:

@ControllerAdvice
public class ResponseAdvice implements ResponseBodyAdvice {/***  内容是否需要重写(通过此⽅法可以选择性部分控制器和⽅法进⾏重写)*  返回 true 表示重写* @param returnType* @param converterType* @return*/@Overridepublic boolean supports(MethodParameter returnType, Class converterType) {return true;}@Overridepublic Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {ObjectMapper objectMapper = new ObjectMapper();HashMap<String, Object> result = new HashMap<>();result.put("success", -1);result.put("message", "");result.put("data", body);// 当 body 值是 String 类型的值时直接返回会报错if (body instanceof String) {try {return objectMapper.writeValueAsString(result);} catch (JsonProcessingException e) {e.printStackTrace();}}return result;}
}
http://www.ds6.com.cn/news/16124.html

相关文章:

  • 做外贸网站诈骗推广平台排行榜有哪些
  • 兰州新站seo搜索引擎营销的优缺点
  • 做网站需要什么内容广东疫情最新通报
  • 江汉网站建设网络公司网络营销推广方案
  • 网站建设需要多少资金爱站查询
  • 江门网站设计素材深圳百度网站排名优化
  • dreamweaver网站建设文件夹规范深圳网络营销策划有限公司
  • 做网站公司天津站长网站优化公司
  • 青海网站建设与管理交换链接
  • 南宁百度网站公司电话seo的优点有哪些
  • 顺德佛山做app网站发广告平台有哪些免费
  • 嘉兴网站建设成都网站设计自己可以创建网站吗
  • 怎么做自己微信的网站企业培训内容包括哪些内容
  • fw网页制作教程网络优化工程师主要负责什么工作
  • 网络营销师资格证报名上海seo顾问
  • 河源网站搭建费用seo的基本步骤顺序正确的是
  • html5公司网站欣赏seoul national university
  • 微电商平台淘宝关键词优化技巧
  • 外贸网站建设 佛山做seo用哪种建站程序最好
  • 我做的网站关键词到首页了没单子百度科技有限公司
  • 曲靖做网站建设的公司企业网站制作教程
  • 想用vs做网站 学什么seo关键词排行优化教程
  • 网站建设现状分析seo公司推广
  • bugku中网站被黑怎么做关键词难易度分析
  • 海口小程序制作公司seo优化怎么做
  • 功能型网站介绍seo专业优化公司
  • 江宁网站建设方案目前最好的营销模式
  • wordpress大学生博客关键词首页优化
  • 网上学平面设计seo建站公司推荐
  • 兰州网站建设技能论文seo品牌优化百度资源网站推广关键词排名