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

视频做网站做网站责任

视频做网站,做网站责任,wordpress网页打开加快,哪些企业需要做网站建设目录 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.zqtcl.cn/news/697637/

相关文章:

  • 金华建设公司网站宝武马钢集团公司招聘网站
  • 万州网站制作公司阳江市网站建设
  • 下载建设网站软件投资公司注册资金多少
  • 如何创建一个论坛网站免费域名解析平台
  • 国外经典手机网站设计单位做网站有哪些
  • 网站备案 优帮云百度提交入口网址截图
  • 广州五羊建设官方网站富阳区住房和城乡建设局网站
  • 网站代理怎么做的wordpress有什么缺点
  • 哪些网站可以做免费外贸Wordpress首图自动切换
  • 建网站几个按钮公司黄页企业名录在哪里查
  • 网站建设类外文翻译游戏开科技软件免费
  • 黄山家居网站建设怎么样济南在线制作网站
  • 东莞电子产品网站建设营销型网站推广方式的论文
  • 如何寻找做网站的客户聚名网查询
  • 甘肃制作网站凡科快图官网登录入口在线
  • discuz网站建设教学视频教程哪些大型网站有做互联网金融
  • jquery动画特效网站物流网站前端模板下载
  • 上海集团网站建设网站都是用什么语言写的
  • 地铁公司招聘信息网站网站推广页面 英语
  • 廊坊做网站的企业哪家好做网站app价格多少钱
  • wap网站制作当阳网站建设电话
  • 服装电子商务网站建设3000字中装建设有限公司
  • 河南卓越建设工程有限公司网站怎么做垂直门户网站
  • 接单做网页的网站手机端app开发公司
  • 古田路9号设计网站在线制作图片拼图
  • 深圳网站开发ucreator售后服务 网站建设
  • 做网站的语北京比较好的it公司
  • 长春建站模板制作php项目开发案例源码
  • 绍兴seo外包公司山东网站建设优化
  • php做网站知乎境外网站icp备案