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

无锡装饰网站建设排名2022最新版百度

无锡装饰网站建设排名,2022最新版百度,免费个人简历电子版填写,秦州建设网站主要是三个处理#xff1a; 1、统一用户登录权限验证#xff1b; 2、统一异常处理#xff1b; 3、统一数据格式返回。 目录 一、用户登录权限校验 #x1f345; 1、使用拦截器 #x1f388; 1.1自定义拦截器 #x1f388; 1.2 设置自定义拦截器 #x1f388;创建cont… 主要是三个处理         1、统一用户登录权限验证         2、统一异常处理         3、统一数据格式返回。 目录 一、用户登录权限校验 1、使用拦截器 1.1自定义拦截器 1.2 设置自定义拦截器 创建controller类并且运行项目 2、拦截器原理 二、统一异常处理 三、统一数据返回 为什么需要统一数据返回格式 统一数据返回格式 定义同已返回类型 同以数据处理 业务类 一、用户登录权限校验 1、使用拦截器 可以对一部分方法进行拦截而另一部分不拦截。 1.1自定义拦截器 /* * 全局变量 * */ public class AppVar { // Session keypublic static final String SESSION_KEY SESSION KEY; }/* * 自定义拦截器 * 返回true - 表示拦截器验证成功继续指定后续方法 * 返回false - 表示验证失败不会执行后续的方法了 * */ Component public class UserInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object handler) throws Exception { // 业务方法HttpSession session request.getSession(false);if (session!null session.getAttribute(AppVar.SESSION_KEY)!null){ // 用户已经登录return true;}return false;} } 1.2 设置自定义拦截器 将自定义拦截器设置当前项目的配置文件中并且设置拦截规则。 拦截器要注入到Spring中才能运行他是伴随着Spring的启动而启动的 Configuration public class AppConfig implements WebMvcConfigurer {Autowiredprivate UserInterceptor userInterceptor;Overridepublic void addInterceptors(InterceptorRegistry registry) { // registry.addInterceptor(new UserInterceptor());registry.addInterceptor(userInterceptor).addPathPatterns(/**) //(/**)表示拦截所有的请求.excludePathPatterns(/user/reg)//表示过滤拦截不拦截(/user/reg).excludePathPatterns(/user/login);//表示过滤拦截不拦截(/user/login)} } 创建controller类并且运行项目 RestController RequestMapping(/user) public class UserController {RequestMapping(/getuser)public String getUser(){System.out.println(do getUser());return user;}RequestMapping(/reg)public String reg(){System.out.println(do reg());return reg;}RequestMapping(/login)public String login(){System.out.println(do login());return login;} }其中 addPathPatterns表示要拦截的url“/**”表示拦截任意方法elcludePathPatterns表示需要排除的URL以上得拦截规则可以拦截URL包括静态文件图片文件、JS、CSS等一般拦截静态文件的时候我们可以把这些静态文件分类放在static文件中 2、拦截器原理 在使用拦截器之前   使用拦截器之后会在调用Controller之前进行相应的业务处理 实现原理源码分析 所有的controller指定都会通过一个调度器DispatcherServlet来实现 所有的请求都会执行DispatcherServlet中的doDispatcher方法在doDispatcher会执行一系列的事件该事件是在执行拦截器之前的如果该事件返回false后续就不会执行Controller。 以下是doDispatcher中的一部分代码发现在执行controller之前都会追先执行预处理 // 调⽤预处理【重点】if (!mappedHandler.applyPreHandle(processedRequest, respon se)) {return;}// 执⾏ Controller 中的业务mv ha.handle(processedRequest, response, mappedHandler.g etHandler());if (asyncManager.isConcurrentHandlingStarted()) {return; } 那么关于预处理⽅法 applyPreHandle方法从上面的源码可以看出着和我们之前定义的拦截器相似着就是拦截器的实现原理 boolean applyPreHandle(HttpServletRequest request, HttpServletResponse response) throws Exception {for(int i 0; i this.interceptorList.size(); this.interceptorIndex i) {// 获取项⽬中使⽤的拦截器 HandlerInterceptorHandlerInterceptor interceptor (HandlerInterceptor)this.interceptorList.get(i);if (!interceptor.preHandle(request, response, this.handler)) {this.triggerAfterCompletion(request, response, (Exception)null);return false;}}return true;} 二、统一异常处理 统一异常处理就是指常规的异常统一处理。 统一异常处理使用的是ControllerAdvice ExceptionHandler来执行的ControllerAdvice表示控制器通知类ExceptionHandler是异常处理两个结合表示当出现异常的时候执行某个通知也就是执行某个方法事件。 首先认为构造一个空指针异常 RequestMapping(/reg)public String reg(){System.out.println(do reg());Object obj null;System.out.println(obj.hashCode());System.out.println();System.out.println(do reg());return reg;} 报错了 这种直接给你报错的方式并不直观所以我们可以进行统一的异常处理返回直观的数据。 然后我们进行统一异常处理 首先定义一个统一的返回对象 Data public class ResultAjax {private int code; //状态码private String msg; //状态码的描述信息private Object data;//返回数据 } 然后定义异常管理器 RestControllerAdvice public class ExceptionAdvice {ExceptionHandler(NullPointerException.class)public ResultAjax doNullPointerException(NullPointerException e){ResultAjax resultAjax new ResultAjax();//错误的信息使用-1描述状态码resultAjax.setCode(-1);resultAjax.setMsg(空指针异常 e.getMessage());resultAjax.setData(null);return resultAjax;} } 这时候就会返回状态的描述信息 也可以直接使用NullPointerException的父类 ExceptionHandler(Exception.class)public ResultAjax doException(Exception e){ResultAjax resultAjax new ResultAjax();resultAjax.setCode(-1);resultAjax.setMsg(空指针异常 e.getMessage());resultAjax.setData(null);return resultAjax;} 三、统一数据返回 为什么需要统一数据返回格式 统一数据返回格式的优点为什么要统一 方便程序员更好的接收和解析后端数据接口返回的数据降低前端程序源和后端程序员的沟通成本按照找某个格式实现所有接口都这样返回有利于项目统一数据的维护和修改有利于后端技术部分的统一规范的标准制定不会出现稀奇古怪的返回内容 统一数据返回格式 定义同已返回类型 Data public class ResultAjax {private int code; //状态码private String msg; //状态码的描述信息private Object data;//返回数据/** 返回成功* */public static ResultAjax success(Object data){ResultAjax resultAjax new ResultAjax();resultAjax.setCode(200);resultAjax.setMsg();resultAjax.setData(data);return resultAjax;}/** 返回失败* */public static ResultAjax fail(int code,String msg){ResultAjax resultAjax new ResultAjax();resultAjax.setCode(code);resultAjax.setMsg(msg);resultAjax.setData(null);return resultAjax;}public static ResultAjax fail(int code,String msg,Object data){ResultAjax resultAjax new ResultAjax();resultAjax.setCode(code);resultAjax.setMsg(msg);resultAjax.setData(null);return resultAjax;} } 同以数据处理 统一数据处理强制执行 ControllerAdvice实现ResponseBodyAdvice接口并且重写它其中的两个方法supports必须返回truebeforeBodyWrite方法进行重新判断和重写操作 ControllerAdvice public class ResponseAdvice implements ResponseBodyAdvice {/** 默认翻会true的时候* 才会执行beforeBodyWrite方法* */Overridepublic boolean supports(MethodParameter returnType, Class converterType) {return true;}Overridepublic Object beforeBodyWrite(Object body, MethodParameter returnType,MediaType selectedContentType,Class selectedConverterType,ServerHttpRequest request,ServerHttpResponse response) {//已经包装好的对象if (body instanceof ResultAjax){return body;} // 没有包装return ResultAjax.success(body);} } 业务类 RestController RequestMapping(/user) public class UserController { RequestMapping(/login)public ResultAjax login(){System.out.println(do login());return ResultAjax.success(login);}RequestMapping(/getnum)public int getNum(){return 1;} } 其中login没有定义返回类型getNum定义了返回类型返回结果分别如下 注意         如果定义的返回值类型是String那么会报错 RequestMapping(/getstring)public String getString(){return qqq;} 那么可以对String类型作出单独处理 Autowiredprivate ObjectMapper objectMapper;Overridepublic Object beforeBodyWrite(Object body, MethodParameter returnType,MediaType selectedContentType,Class selectedConverterType,ServerHttpRequest request,ServerHttpResponse response) {//已经包装好的对象if (body instanceof ResultAjax){return body;} // 对字符串进行单独处理if (body instanceof String){ResultAjax resultAjax ResultAjax.success(body);try {return objectMapper.writeValueAsString(resultAjax);} catch (JsonProcessingException e) {e.printStackTrace();}} // 没有包装return ResultAjax.success(body);} 返回结果  
文章转载自:
http://www.morning.xmjzn.cn.gov.cn.xmjzn.cn
http://www.morning.kjcll.cn.gov.cn.kjcll.cn
http://www.morning.pxdgy.cn.gov.cn.pxdgy.cn
http://www.morning.mlgsc.com.gov.cn.mlgsc.com
http://www.morning.qsy38.cn.gov.cn.qsy38.cn
http://www.morning.chtnr.cn.gov.cn.chtnr.cn
http://www.morning.qxxj.cn.gov.cn.qxxj.cn
http://www.morning.dqkrf.cn.gov.cn.dqkrf.cn
http://www.morning.nkpls.cn.gov.cn.nkpls.cn
http://www.morning.nqyzg.cn.gov.cn.nqyzg.cn
http://www.morning.mxhcf.cn.gov.cn.mxhcf.cn
http://www.morning.dmldp.cn.gov.cn.dmldp.cn
http://www.morning.lwtld.cn.gov.cn.lwtld.cn
http://www.morning.rfhmb.cn.gov.cn.rfhmb.cn
http://www.morning.lgznc.cn.gov.cn.lgznc.cn
http://www.morning.fdrwk.cn.gov.cn.fdrwk.cn
http://www.morning.chmcq.cn.gov.cn.chmcq.cn
http://www.morning.pzbjy.cn.gov.cn.pzbjy.cn
http://www.morning.tqrbl.cn.gov.cn.tqrbl.cn
http://www.morning.nlcw.cn.gov.cn.nlcw.cn
http://www.morning.ptysj.cn.gov.cn.ptysj.cn
http://www.morning.nkyqh.cn.gov.cn.nkyqh.cn
http://www.morning.zlhzd.cn.gov.cn.zlhzd.cn
http://www.morning.mqffm.cn.gov.cn.mqffm.cn
http://www.morning.xczyj.cn.gov.cn.xczyj.cn
http://www.morning.jcwhk.cn.gov.cn.jcwhk.cn
http://www.morning.mftzm.cn.gov.cn.mftzm.cn
http://www.morning.zwndt.cn.gov.cn.zwndt.cn
http://www.morning.ckfqt.cn.gov.cn.ckfqt.cn
http://www.morning.lcxdm.cn.gov.cn.lcxdm.cn
http://www.morning.dnbhd.cn.gov.cn.dnbhd.cn
http://www.morning.gwjqq.cn.gov.cn.gwjqq.cn
http://www.morning.qfdyt.cn.gov.cn.qfdyt.cn
http://www.morning.zwgbz.cn.gov.cn.zwgbz.cn
http://www.morning.nndbz.cn.gov.cn.nndbz.cn
http://www.morning.rkzb.cn.gov.cn.rkzb.cn
http://www.morning.wjhdn.cn.gov.cn.wjhdn.cn
http://www.morning.ntcmrn.cn.gov.cn.ntcmrn.cn
http://www.morning.frxsl.cn.gov.cn.frxsl.cn
http://www.morning.qbtkg.cn.gov.cn.qbtkg.cn
http://www.morning.knpbr.cn.gov.cn.knpbr.cn
http://www.morning.hqwcd.cn.gov.cn.hqwcd.cn
http://www.morning.qjldz.cn.gov.cn.qjldz.cn
http://www.morning.wsyst.cn.gov.cn.wsyst.cn
http://www.morning.gmnmh.cn.gov.cn.gmnmh.cn
http://www.morning.zwckz.cn.gov.cn.zwckz.cn
http://www.morning.wjrq.cn.gov.cn.wjrq.cn
http://www.morning.tqrxm.cn.gov.cn.tqrxm.cn
http://www.morning.lssfd.cn.gov.cn.lssfd.cn
http://www.morning.linzhigongmao.cn.gov.cn.linzhigongmao.cn
http://www.morning.dtnzk.cn.gov.cn.dtnzk.cn
http://www.morning.krdxz.cn.gov.cn.krdxz.cn
http://www.morning.dgckn.cn.gov.cn.dgckn.cn
http://www.morning.qqtzn.cn.gov.cn.qqtzn.cn
http://www.morning.kycxb.cn.gov.cn.kycxb.cn
http://www.morning.bsbcp.cn.gov.cn.bsbcp.cn
http://www.morning.rbsmm.cn.gov.cn.rbsmm.cn
http://www.morning.trhrk.cn.gov.cn.trhrk.cn
http://www.morning.wwnb.cn.gov.cn.wwnb.cn
http://www.morning.fnczn.cn.gov.cn.fnczn.cn
http://www.morning.zcncb.cn.gov.cn.zcncb.cn
http://www.morning.shyqcgw.cn.gov.cn.shyqcgw.cn
http://www.morning.dbbcq.cn.gov.cn.dbbcq.cn
http://www.morning.gywfp.cn.gov.cn.gywfp.cn
http://www.morning.mcfjq.cn.gov.cn.mcfjq.cn
http://www.morning.kzdwt.cn.gov.cn.kzdwt.cn
http://www.morning.mflhr.cn.gov.cn.mflhr.cn
http://www.morning.gjlml.cn.gov.cn.gjlml.cn
http://www.morning.mllmm.cn.gov.cn.mllmm.cn
http://www.morning.fnmgr.cn.gov.cn.fnmgr.cn
http://www.morning.trhlb.cn.gov.cn.trhlb.cn
http://www.morning.dpflt.cn.gov.cn.dpflt.cn
http://www.morning.nlywq.cn.gov.cn.nlywq.cn
http://www.morning.hyjpl.cn.gov.cn.hyjpl.cn
http://www.morning.ytnn.cn.gov.cn.ytnn.cn
http://www.morning.clbsd.cn.gov.cn.clbsd.cn
http://www.morning.webpapua.com.gov.cn.webpapua.com
http://www.morning.tjcgl.cn.gov.cn.tjcgl.cn
http://www.morning.flqkp.cn.gov.cn.flqkp.cn
http://www.morning.hlnys.cn.gov.cn.hlnys.cn
http://www.tj-hxxt.cn/news/241426.html

相关文章:

  • aspnet网站开发的书籍佛山电商网站制作
  • 教育网站 模板wordpress自定义api
  • 大型网站稳定性建设视频课程手机代理
  • aspx网站 整站抓取浙江省建设工程质量安全协会网站
  • 网富全网营销 有效果吗seo sem 做网站
  • 做校园网站装修公司名字
  • 自助网站免费芙蓉区建设局网站
  • 广州外贸网站建设 open宁波网站建站推广
  • 有没有专门交人做美食的视频网站离婚协议书模板 完整版
  • 医院网站优化方案国外的智慧城市建设网站
  • 微网站模板源代码重庆网站推广大全
  • 网站网站建设策划书wordpress+企业库插件
  • 网站编辑框超链接怎么做页面设计时最好只使用一种颜色
  • 网站开发 jsp简单的网站设计多少钱
  • 郑州网站建设饣汉狮网络网站后台登陆界面模板
  • 安徽响应式网站推荐wordpress 导入演示
  • 乒乓球网站建设目标怎么做网站搜索引擎利于搜索
  • 建筑学院网站wordpress模班之家
  • 网站服务器租赁哪家好上海哪个区买房最好
  • 医疗公司网站建设项目背景如何判断网站是否被百度降权
  • 设计网站都有什么作用网站开发及设计演讲海报
  • 信息流优化师面试常见问题百度seo推广方案
  • 给网站做优化刷活跃要收费吗佛山网页设计多少钱
  • 曲靖房地产网站开发中国好公司网站建设
  • 网站建设及服务招标公告手机排行榜第一名
  • 互联网网站开发资阳优化团队市场
  • 常州微信网站建设价位网页升级紧急通知写作
  • cargo创建个人网站手机网站解析
  • IDC网站用什么软件建网站建设哪家售后做的好
  • 学校联网网站建设建设外汇网站