深圳网站建设有免费的吗教育类网站建设

web/2025/10/8 11:27:35/文章来源:
深圳网站建设有免费的吗,教育类网站建设,视频网站搭建源码,免费创建音乐网站目录 1.统一异常处理 2.统一记录日志 1.统一异常处理 在 HomeController 类中添加请求方法#xff08;服务器发生异常之后需要统一处理异常#xff0c;记录日志#xff0c;然后转到 500 页面#xff0c;需要人工处理重定向到 500 页面#xff0c;提前把 500 页面请求访问…目录 1.统一异常处理 2.统一记录日志 1.统一异常处理 在 HomeController 类中添加请求方法服务器发生异常之后需要统一处理异常记录日志然后转到 500 页面需要人工处理重定向到 500 页面提前把 500 页面请求访问配置 RequestMapping(path /error, method RequestMethod.GET)public String getErrorPage() {return /error/500;} 在 controller 类下新建 advice 包创建 ExceptionAdvice 类 添加注解 ControllerAdvice 统一处理异常此时这个组件会扫面所有的 Bean做一个限制 ControllerAdvice(annotations Controller.class)这个组件只去扫面带有 Controller 注解的 Bean添加所有方法处理所有错误情况添加注解 ExceptionHandler 表示这个方法处理所有异常的方法—— ExceptionHandler({Exception.class})通常参数为 Exception e, HttpServletRequest request, HttpServletResponse response注入日志并且把异常记录日志想要把异常非常详细的栈的信息记录遍历栈的信息得到的是数组每次遍历得到一条异常信息打印日志然后给浏览器响应重定向到错误页面这时候还需要判断这个请求是普通请求还是异步请求浏览器访问服务器可能是普通请求希望返回网页然后重定向到 500也可能是异步请求希望返回 JSON不可以返回到页面 HTML通过 request.getHeader(x-requested-with) 获取请求返回 String如果返回值等于 XMLHttpRequest则表示为异步请求这个请求是以 XML 的形式访问希望返回 XML只有异步请求才希望返回 XML普通请求返回 HTML然后响应字符串application/plain;charsetutf-8向浏览器返回普通字符串可以是 JSON 格式需要人为的将字符串转化为 JS 对象获取输出流输出JSON字符串如果是普通请求重定向到错误页面获取项目访问路径 /error 路径 package com.example.demo.controller.advice;import com.example.demo.util.CommunityUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter;//添加注解 ControllerAdvice 统一处理异常此时这个组件会扫面所有的 Bean //做一个限制 ControllerAdvice(annotations Controller.class)这个组件只去扫面带有 Controller 注解的 Bean ControllerAdvice(annotations Controller.class) public class ExceptionAdvice {private static final Logger logger LoggerFactory.getLogger(ExceptionAdvice.class);//添加所有方法处理所有错误情况添加注解 ExceptionHandler 表示这个方法处理所有异常的方法ExceptionHandler({Exception.class})public void handleException(Exception e, HttpServletRequest request,HttpServletResponse response) throws IOException {//注入日志并且把异常记录日志想要把异常非常详细的栈的信息记录// 遍历栈的信息得到的是数组每次遍历得到一条异常信息打印日志logger.error(服务器发生异常: e.getMessage());for (StackTraceElement element : e.getStackTrace()) {logger.error(element.toString());}//然后给浏览器响应重定向到错误页面//这时候还需要判断这个请求是普通请求还是异步请求浏览器访问服务器可能是普通请求希望返回网页然后重定向到 500// 也可能是异步请求希望返回 JSON不可以返回到页面 HTML//通过 request.getHeader(x-requested-with) 获取请求返回 String如果返回值等于 XMLHttpRequest则表示为异步请求// 这个请求是以 XML 的形式访问希望返回 XML只有异步请求才希望返回 XML普通请求返回 HTMLString xRequestedWith request.getHeader(x-requested-with);if (XMLHttpRequest.equals(xRequestedWith)) {// 然后响应字符串application/plain;charsetutf-8向浏览器返回普通字符串//可以是 JSON 格式需要人为的将字符串转化为 JS 对象response.setContentType(application/plain;charsetutf-8);//获取输出流输出JSON字符串如果是普通请求重定向到错误页面获取项目访问路径 /error 路径PrintWriter writer response.getWriter();writer.write(CommunityUtil.getJSONString(1, 服务器异常!));} else {response.sendRedirect(request.getContextPath() /error);}} }2.统一记录日志 可不可以利用控制器通知统一处理控制器通知在发生异常时可以统一处理而统一记录日志并不是发生异常才记录可不可以使用拦截器拦截器也是针对控制器做处理而记录日志并不是只有在控制器中记录目前我们对业务组件做日志记录使用传统方法把记录日志的内容封装到组件中在不同的业务组件service方法中调用比如在一开始记录日志在写也业务方法之前记录日志。这种方法也有弊端业务组件方法是处理业务但是在之前添加日志需求不是业务需求是系统需求所以在业务方法中耦合了系统需求是有弊端的例如现在系统需求发生变化不想在业务之前记录日志而是在之后记录日志改动比较大很麻烦解决问题的最好方法将记录日志系统需求单独实现——使用 AOP单独定义一个组件不和业务组件发生直接关系将业务组件通用逻辑封装在这个组件中 对于 AOP 的知识可以阅读之前学习的 AOP 博客Spring AOP-CSDN博客 在 pom.xml 添加依赖 !-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-aop -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-aop/artifactId /dependency 对所有业务组件记录日志在业务组件一开始记录日志新建 aspect 包创建 ServiceLogAspect 类存放切面主键 添加注解 Component、Aspect实例化 Logger声明切点所有业务组件都去处理使用前置通知在业务组件一开始记录日志记录格式用户[1.2.3.4],在[xxx],访问了[com.example.demo.service.xxx()].用户 ip 通过 request 获取获取 requestRequestContextHolder.getRequestAttributes();拼接时间new Date然后实例化访问某个类某个方法类名 方法名给方法添加 JoinPoint 连接点参数连接点指代程序植入的目标方法最后再进行全部拼接 package com.example.demo.aspect;import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes;import javax.servlet.http.HttpServletRequest; import java.text.SimpleDateFormat; import java.util.Date;Component Aspect public class ServiceLogAspect {//实例化 Loggerprivate static final Logger logger LoggerFactory.getLogger(ServiceLogAspect.class);//声明切点所有业务组件都去处理Pointcut(execution(* com.example.demo.service.*.*(..)))public void pointcut() {}//使用前置通知在业务组件一开始记录日志Before(pointcut())public void before(JoinPoint joinPoint) {//记录格式用户[1.2.3.4],在[xxx],访问了[com.example.demo.service.xxx()].//用户 ip 通过 request 获取获取 requestRequestContextHolder.getRequestAttributes();ServletRequestAttributes attributes (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletRequest request attributes.getRequest();String ip request.getRemoteHost();//拼接时间new Date然后实例化String now new SimpleDateFormat(yyyy-MM-dd HH:mm:ss).format(new Date());//访问某个类某个方法类名 方法名给方法添加 JoinPoint 连接点参数连接点指代程序植入的目标方法String target joinPoint.getSignature().getDeclaringTypeName() . joinPoint.getSignature().getName();//全部拼接logger.info(String.format(用户[%s],在[%s],访问了[%s]., ip, now, target));} }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/89026.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端个人网站模板国内最新新闻摘抄30字

创建正点原子的TF-A工作区,目的是想查看正点原子的设备树文件“stm32mp157d-atk.dts”和设备树头文件“stm32mp157d-atk.dtsi”,了解设备树是什么样子,为后期基于“ST公司的源码”创建自己的设备树提供参考,同时也是为了学习移植u…

商城网站建设的步骤阿里云备案多个网站

卓金武——从数学建模到MATLAB 2013-9-4 09:48| 发布者: ilovematlab| 查看: 9647| 评论: 40 摘要: 人物简介——卓金武(Steven),MathWorks公司中国区应用工程师。在科学计算、定量优化、数学建模和数据挖掘领域拥有8年经验。曾3次获全国大学…

深圳制作网站的公司wordpress文章归档 文章显示数量

摄像机标定的目的是为了求解摄像机的内、外参数 求解投影矩阵M 通过建立特殊的场景,我们能过得到多对世界坐标和对应图像坐标 根据摄像机几何可知 : ,M是一个3*4的矩阵,令 通过一对点可以得到两个方程组,M中一共有11个…

中小型网站建设报价网站系统开发流程

文章目录 0 前言1 课题背景2 具体实现3 数据收集和处理3 MobileNetV2网络4 损失函数softmax 交叉熵4.1 softmax函数4.2 交叉熵损失函数 5 优化器SGD6 最后 0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点&a…

查企企官方网站免费在线代理网页

作者推荐 视频算法专题 本文涉及知识点 数学 网格 状态压缩 LeetCode:782 变为棋盘 一个 n x n 的二维网络 board 仅由 0 和 1 组成 。每次移动,你能任意交换两列或是两行的位置。 返回 将这个矩阵变为 “棋盘” 所需的最小移动次数 。如果不存在可行的变换&am…

简易的小企业网站建设政协网站建设要求

空间 样本空间 就是属性的所有可能情况,包括了一切可能出现或不可能出现的所有样本情况 版本空间&假设空间 假设空间就是在样本空间的基础上,给所有属性都加了一个通配符,表示任意即可;以及加上了一个空集,表示…

app与微网站的区别是什么意思电子商务网站建设初学视频教程

在做项目时&#xff0c;随着需求的不断增加&#xff0c;我们的代码文件会越来越大&#xff0c;但是在打包时&#xff0c;在 Node 中通过 JavaScript 使用内存的大小却是有限制的。于是&#xff0c;今天打算部署代码时&#xff0c;报错了: <--- JS stacktrace ---> JS st…

如何注册网站平台重庆网站建设重庆零臻科技行

简介 在网络通信编程中&#xff0c;用的最多的就是UDP和TCP通信了&#xff0c;原理这里就不分析了&#xff0c;网上介绍也很多&#xff0c;这里简单列举一下各自的优缺点和使用场景 通信方式优点缺点适用场景UDP及时性好&#xff0c;快速视网络情况&#xff0c;存在丢包 与嵌入…

上传的网站打不开怎么办如何用网页制作网站

网页中的音视频 <audio> 和 <vedio> 标签属性&#xff1a;autoplay 自动播放 controls 控制播放 loop 循环播放 表单 HTML 表单用于收集用户输入。 标签<form> 标签属性 action 数据的路径 enctype 传输文件 enctype"multipart/form-data" method …

开封网站seo工作中网页开发方案

目录 线程安全和重⼊问题 死锁和活锁 死锁 死锁四个必要条件 活锁 STL,智能指针和线程安全 线程安全的单例模式 饿汉模式 懒汉模式 懒汉模式实现单例模式(线程安全版本) 饿汉模式实现单例模式 我们来学习单例模式与线程安全 线程安全和重⼊问题 线程安全&#xff…

自己电脑上做的网站 怎么让别人看口碑好的五屏网站建设

在硅谷一线大厂所维护的系统服务中&#xff0c;我们经常可以看见SLA这样的承诺。 例如&#xff0c;在谷歌的云计算服务平台Google Cloud Platform中&#xff0c;他们会写着“99.9% Availability”这样的承诺。那什么是“99.9% Availability”呢&#xff1f; 要理解这个承诺是…

西部数码上传网站柳州网站虚拟主机销售价格

介绍 本篇Codelab我们将教会大家如何构建一个简易的OpenHarmony新闻客户端&#xff08;JS版本&#xff09;。应用包含两级页面&#xff0c;分别是主页面和详情页面&#xff0c;两个页面都展示了丰富的UI组件&#xff0c;其中详情页的实现逻辑中还展示了如何通过调用相应接口&a…

广州网站建设电话咨询wordpress最新版本

较为官方的概念&#xff1a; 当且仅当规格说明是存在的并且正确&#xff0c;程序与规格说明之间的 不匹配才是错误。 当需求规格说明书没有提到的功能&#xff0c;判断标准以最终用户为准&#xff1a;当程序没有实现其最终用户合理预期的 功能要求时&#xff0c;就是软…

房地产网站建设策划书北京公司电话大全黄页

低功耗技术 功耗构成静态功耗(漏电功耗)动态功耗翻转功耗(Switch Power)短路功耗(Internal Power) 不同类型的标准单元的功耗 低功耗设计方法降低芯片工作电压多阈值工艺方法电源门控&#xff08;Power Gating&#xff09;多电压域(Multi-Voltage Domain)体偏置门控时钟一个简单…

班级响应式网站html格式游戏开发物语破解版

一.题目要求 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 二.题目难度 简单 三.输入样例 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示…

清远市住房与城乡建设局的网站查网站加背景音乐

已知有三个数据库mysql,mongodb和redis&#xff0c;已经分别存储了不同的学生信息&#xff0c;数据全部采用字符串类型&#xff0c;只有id和name两个字段(在mongo和redis中键为id,值为name)&#xff0c;现需编写代码实现需求&#xff1a;根据指定id获取对应的name和存储该条信息…

网站商城建站app是程序员做出来的吗

1 问题 app,自定义消息通知的时候,在Android8.0手机上收不到通知 2 解决办法 NotificationManager需要创建NotificationChannel,然后调用createNotificationChannel把NotificationChannel传递进去,并且通过setChannelId设置相应的id 3 普通样本代码实现 private static fina…

站长工具综合查询ip情人做网站

在上传文件时&#xff0c;想使用setRequestMethod&#xff08;“GET”&#xff09;。结果无效 因为需要使用输出流上传文件&#xff0c;而使用输出流时&#xff0c;HttpURLConnection默认使用post请求。是无法更改的 conn.setDoOutput(true); //允许输出流 与 conn.setR…

计算机网络 网站开发与设计网站推广的方式

背景 闲鱼目前已经是国内最大的闲置物品交易平台&#xff0c;每天都有数以千万计的用户过来闲鱼&#xff0c;以C2C交易为主。在闲鱼里面&#xff0c;用户的C2C购物频率其实是很低的&#xff0c;而纯粹地逛商品feed流是一件挺无聊的事情。在业务上做加法&#xff0c;突破闲鱼用…

jsp网站开发pdf市场营销与网络营销

Linux的 /etc/hosts 文件用于静态地映射主机名到 IP 地址。 通常用于本地网络中的名称解析&#xff0c;它可以覆盖 DNS 的设置。当你访问一个域名时&#xff0c;系统会首先检查 /etc/hosts 文件&#xff0c;如果找到了匹配项&#xff0c;就会使用该 IP 地址&#xff0c;否则会…