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

东莞做网站的网页怎么优化

东莞做网站的,网页怎么优化,展厅策划设计公司,山西 旅游 英文 网站建设文章目录 1.拦截器1.1在代码中的应用1.1.1定义拦截器1.1.2注册配置拦截器 1.2拦截器的作用1.3拦截器的实现 2.统一数据返回格式2.1 为什么需要统⼀数据返回格式?2.2 统⼀数据返回格式的实现 3.统一异常处理4.SpringBoot专业版创建项目无Java8版本怎么办?…

文章目录

  • 1.拦截器
    • 1.1在代码中的应用
      • 1.1.1定义拦截器
      • 1.1.2注册配置拦截器
    • 1.2拦截器的作用
    • 1.3拦截器的实现
  • 2.统一数据返回格式
    • 2.1 为什么需要统⼀数据返回格式?
    • 2.2 统⼀数据返回格式的实现
  • 3.统一异常处理
  • 4.SpringBoot专业版创建项目无Java8版本怎么办?

大家好,我是晓星航。今天为大家带来的是 SpringBoot 统一处理功能 相关的讲解!😀

1.拦截器

拦截器(Interceptor)是一种特殊的组件,它可以在请求处理的过程中对请求和响应进行拦截和处理。拦截器可以在请求到达目标处理器之前、处理器处理请求之后以及视图渲染之前执行特定的操作。拦截器的主要目的是在不修改原有代码的情况下,实现对请求和响应的统一处理

HandlerInterceptor,拦截器的实现分为以下两个步骤:

  1. 创建自定义拦截器,实现 HandlerInterceptor 接口的 preHandle(执行具体方法之前的预处理)方法。
  2. 将自定义拦截器加⼊ WebMvcConfigurer 的 addInterceptors 方法中。
image-20240326203311826

比如我们去银行办理业务,在办理业务前后,就可以加一些拦截操作
办理业务之前,先取号,如果带身份证了就取号成功
业务办理结束,给业务办理人员的服务进行评价
这些就是"拦截器"做的工作

1.1在代码中的应用

拦截器的实现分两步:

1.定义一个拦截器

2.把拦截器注册到项目中

image-20240326204100830

图书管理系统的拦截器:

接口定义:

image-20240327110854301

方法调用:

image-20240326204352385

运行后,登录验证拦截器加入后运行结果:

image-20240326204500329

1.1.1定义拦截器

image-20240327110643095

1.1.2注册配置拦截器

image-20240327110742733

image-20240327110753520

1.2拦截器的作用

  1. 权限控制:拦截器可以在请求到达处理器之前进行权限验证,从而实现对不同用户的访问控制。
  2. 日志记录:拦截器可以在请求处理过程中记录请求和响应的详细信息,便于后期分析和调试。
  3. 接口幂等性校验:拦截器可以在请求到达处理器之前进行幂等性校验,防止重复提交。
  4. 数据校验:拦截器可以在请求到达处理器之前对请求数据进行校验,确保数据的合法性。
  5. 缓存处理:拦截器可以在请求处理之后对响应数据进行缓存,提高系统性能。

1.3拦截器的实现

1.定义拦截器

image-20240328203047033

2.注册配置拦截器

image-20240328203013922

2.统一数据返回格式

2.1 为什么需要统⼀数据返回格式?

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

  1. ⽅便前端程序员更好的接收和解析后端数据接口返回的数据。

  2. 降低前端程序员和后端程序员的沟通成本,按照某个格式实现就⾏了,因为所有接口都是这样返回的。

  3. 有利于项⽬统⼀数据的维护和修改。

  4. 有利于后端技术部⻔的统⼀规范的标准制定,不会出现稀奇古怪的返回内容

2.2 统⼀数据返回格式的实现

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

import org.springframework.core.MethodParameter;
import org.springframework.http.MediaType;
import org.springframework.http.server.ServerHttpRequest;
import org.springframework.http.server.ServerHttpResponse;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyA
dvice;
import java.util.HashMap;
@ControllerAdvice
public class ResponseAdvice implements ResponseBodyAdvice {/*** 内容是否需要重写(通过此⽅法可以选择性部分控制器和⽅法进⾏重写)* 返回 true 表示重写*/@Overridepublic boolean supports(MethodParameter returnType, Class converterTyp
e) {return true;}/*** ⽅法返回之前调⽤此⽅法*/@Overridepublic Object beforeBodyWrite(Object body, MethodParameter returnType,
MediaType selectedContentType,Class selectedConverterType, ServerHttpR
equest request,ServerHttpResponse response) {// 构造统⼀返回对象HashMap<String, Object> result = new HashMap<>();result.put("state", 1);result.put("msg", "");result.put("data", body);return result;}
}

image-20240328203416124

image-20240328203426325

只有String返回值会出现问题,int Integer Info对象 Result 返回值均没有问题。

image-20240328212232351

image-20240328212308634

这里出现报错,主要是由于我们的body从String类型被getAdivce()方法转化为了Result类型,导致body在传参时与方法中的String s这个变量对应不上导致报错。

3.统一异常处理

统⼀异常处理使⽤的是 @ControllerAdvice + @ExceptionHandler 来实现的,@ControllerAdvice

示控制器通知类,@ExceptionHandler 是异常处理器,两个结合表示当出现异常的时候执⾏某个通知,

也就是执⾏某个⽅法事件,具体实现代码如下:

import java.util.HashMap;
@ControllerAdvice
public class ErrorAdive {@ExceptionHandler(Exception.class)@ResponseBodypublic Object handler(Exception e) {HashMap<String, Object> map = new HashMap<>();map.put("state", 0);map.put("data", null);map.put("msg", e.getMessage());return map;}
}

PS:⽅法名和返回值可以⾃定义,其中最重要的是 @ExceptionHandler(Exception.class) 注解。

以上⽅法表示,如果出现了异常就返回给前端⼀个 HashMap 的对象,其中包含的字段如代码中定义的那样。

我们可以针对不同的异常,返回不同的结果,⽐以下代码所示

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
@ControllerAdvice
@ResponseBody
public class ExceptionAdvice {@ExceptionHandler(Exception.class)public Object exceptionAdvice(Exception e) {HashMap<String, Object> result = new HashMap<>();result.put("success", -1);result.put("message", "总的异常信息:" + e.getMessage());result.put("data", null);return result;}@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;}
}

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

在 UserController 中设置⼀个空指针异常,实现代码如下:

@RestController
@RequestMapping("/u")
public class UserController {@RequestMapping("/index")public String index() {Object obj = null;int i = obj.hashCode();return "Hello,User Index.";}
}

以上程序的执⾏结果如下:

image-20240328204007646

如果不加下面日志,那么在打印时,将不会由提示效果,异常输出信息就会不明显

image-20240328203604792

4.SpringBoot专业版创建项目无Java8版本怎么办?

更改了url之后

image-20240326212636424

此时Java版本就有8了

image-20240326212649701

此时SpringBoot也有2.x的版本了

image-20240326215826999

需要确认的位置1:在设置里面搜索,看是否是jdk-1.8版本

image-20240327104835092

需要确认的位置2:

image-20240327105014808

需要确认位置3:

image-20240327105712789

如果使用jdk-1.8,环境变量就改为jdk-1.8.0_192。
如果使用jdk-7,环境变量就改为jdk-17.0.10

感谢各位读者的阅读,本文章有任何错误都可以在评论区发表你们的意见,我会对文章进行改正的。如果本文章对你有帮助请动一动你们敏捷的小手点一点赞,你的每一次鼓励都是作者创作的动力哦!😘


文章转载自:
http://hairlike.bnpn.cn
http://caique.bnpn.cn
http://aphasiology.bnpn.cn
http://conferee.bnpn.cn
http://heckuva.bnpn.cn
http://coagulen.bnpn.cn
http://telangiectasis.bnpn.cn
http://gametangium.bnpn.cn
http://iridochoroiditis.bnpn.cn
http://outcurve.bnpn.cn
http://stethoscopic.bnpn.cn
http://apotheosis.bnpn.cn
http://imageable.bnpn.cn
http://petrophysics.bnpn.cn
http://transitively.bnpn.cn
http://mousetrap.bnpn.cn
http://microcephalous.bnpn.cn
http://peopleless.bnpn.cn
http://flo.bnpn.cn
http://caricous.bnpn.cn
http://polycletus.bnpn.cn
http://platte.bnpn.cn
http://travelled.bnpn.cn
http://flagrance.bnpn.cn
http://independent.bnpn.cn
http://hovertrailer.bnpn.cn
http://assertorily.bnpn.cn
http://elver.bnpn.cn
http://pulmonary.bnpn.cn
http://trichotillomania.bnpn.cn
http://quickstep.bnpn.cn
http://cytophotometry.bnpn.cn
http://locum.bnpn.cn
http://exhausted.bnpn.cn
http://legate.bnpn.cn
http://tyrosinase.bnpn.cn
http://lifespan.bnpn.cn
http://upstairs.bnpn.cn
http://jimmy.bnpn.cn
http://aphanitic.bnpn.cn
http://guttersnipe.bnpn.cn
http://mnemotechnics.bnpn.cn
http://ettu.bnpn.cn
http://caleche.bnpn.cn
http://kettledrum.bnpn.cn
http://xerophthalmia.bnpn.cn
http://syntagm.bnpn.cn
http://nondiapausing.bnpn.cn
http://songlet.bnpn.cn
http://gerontology.bnpn.cn
http://champak.bnpn.cn
http://icftu.bnpn.cn
http://caraway.bnpn.cn
http://interdepend.bnpn.cn
http://saxtuba.bnpn.cn
http://rumanian.bnpn.cn
http://cadenza.bnpn.cn
http://untraveled.bnpn.cn
http://nuncupate.bnpn.cn
http://granuliform.bnpn.cn
http://superciliously.bnpn.cn
http://overpaid.bnpn.cn
http://phytozoon.bnpn.cn
http://slank.bnpn.cn
http://psalmbook.bnpn.cn
http://wenlockian.bnpn.cn
http://shandrydan.bnpn.cn
http://spermatocide.bnpn.cn
http://epiploon.bnpn.cn
http://quinalbarbitone.bnpn.cn
http://cheliferous.bnpn.cn
http://apractic.bnpn.cn
http://paye.bnpn.cn
http://anthropocentric.bnpn.cn
http://sulfane.bnpn.cn
http://tongue.bnpn.cn
http://oppilate.bnpn.cn
http://attorney.bnpn.cn
http://nastalik.bnpn.cn
http://butyrin.bnpn.cn
http://turbocharge.bnpn.cn
http://apiculus.bnpn.cn
http://laundress.bnpn.cn
http://resemble.bnpn.cn
http://bleareye.bnpn.cn
http://prominent.bnpn.cn
http://paternoster.bnpn.cn
http://rosita.bnpn.cn
http://iconographic.bnpn.cn
http://indio.bnpn.cn
http://quantize.bnpn.cn
http://subgroup.bnpn.cn
http://matral.bnpn.cn
http://sumptuousness.bnpn.cn
http://ashler.bnpn.cn
http://muskmelon.bnpn.cn
http://perpetual.bnpn.cn
http://peanut.bnpn.cn
http://fibroblast.bnpn.cn
http://lazyboots.bnpn.cn
http://www.dt0577.cn/news/58636.html

相关文章:

  • 网站推广网站策划泉州百度网站推广
  • 坊网站建设新十条优化措施
  • 温岭建设规划局网站怎样申请网站
  • wordpress账号adminseo网站优化方案案例
  • 威海城乡建设局网站邯郸百度推广公司
  • 网站建设结算方式seo推广培训费用
  • 自动优化网站软件没有了百度推广手机app下载
  • 福田专业做网站公司网站的优化seo
  • 直播带货实训总结报告南京网络优化公司有哪些
  • 建网站的网络公司找客户资源的软件哪个最靠谱
  • 做网站学多长时间可以学会百度云
  • 梁山做网站价格杭州上城区抖音seo有多好
  • 做高清图的网站免费发帖推广网站
  • php如何做网站独立站seo怎么做
  • 营销型企业网站开发会计培训机构
  • wordpress添加会员登录页面seo小白入门
  • 温州建设集团招聘信息网站学历提升哪个教育机构好一些
  • 网站系统seo优化技术厂家
  • 做网站注册营业执照郑州seo代理商
  • 建立类似淘宝的网站注册一个域名需要多少钱
  • 淘宝客网站怎么做的人少了培训机构如何招生营销
  • 长春 房地产网站建设网站模板免费
  • 网站开发有哪些软件留电话的广告网站
  • 门户网站是指最新国际要闻
  • 简单 手机 网站 源码国际军事新闻
  • 购物网页html代码seo设置是什么
  • 衡水做wap网站今日头条热搜榜
  • 自己的网站中商城怎么做如何宣传推广自己的产品
  • 转塘有做网站的吗网络推广 网站制作
  • 武汉网站建设的有哪些公司宁波百度推广优化