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

企业网站搭建 网络活动策划平台运营推广

企业网站搭建 网络活动策划,平台运营推广,外国人爱做视频网站吗,计算机网页设计是属于哪一个专业SpringMVC中的Handler、HandlerMapping、HandlerAdapter到底是啥 这东西,虽然说和我们的开发没啥关系,尤其是当你用SpringBoot进行开发时,这些接口离你越来越远了。讲实话,要不是这学期扫一眼学校的课件,我都不知道有这东西,这东西本来就是对使用框架进行开发的开发者隐藏…

SpringMVC中的Handler、HandlerMapping、HandlerAdapter到底是啥
这东西,虽然说和我们的开发没啥关系,尤其是当你用SpringBoot进行开发时,这些接口离你越来越远了。讲实话,要不是这学期扫一眼学校的课件,我都不知道有这东西,这东西本来就是对使用框架进行开发的开发者隐藏的。人家好不容易隐藏起来,你却要我们学起来,没事儿干了吧。
下图是网上流传的总览图,来自这篇文章:SpringMVC框架理解

下面通过阅读源码,来学习这些接口都是干啥的
DispathcerServlet#
不管是哪个Web框架,基于什么语言,都会提供一个在整个系统最前端接受用户请求的东西,我们暂且称它“前端调度器”,它会解析用户请求请求,调度你编写的用于接收请求的组件。这样,你可以根据不同的请求编写不同的组件,在SpringMVC里,DispathcerServlet就是前端调度器,Controller就是你编写的处理请求的组件。
SpringMVC也是基于JavaWeb的那套ServletAPI的,所以,它使用一个Servlet用来接收所有请求,它就像一个桥,一头是ServletAPI,一头是SpringMVC,把Servlet世界里的话翻译成框架中的通用语言。
既然是Servlet,那我们就看它的doService方法呗:
解释
@Overrideprotected void doService(HttpServletRequest request, HttpServletResponse response) throws Exception {
logRequest(request);
// … 省略一些代码 …

try {doDispatch(request, response);
}// ... 再省略一些代码 ...}

调用了doDispatch来执行调度。doDispatch里的代码太多了,我做了精简之后还是很多,所以我在代码中写上注释:
解释
@SuppressWarnings(“deprecation”)protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception {

HttpServletRequest processedRequest = request;
// 记住它的类型,是一个Handler执行链
HandlerExecutionChain mappedHandler = null;ModelAndView mv = null;
Exception dispatchException = null;// ... 省略代码 ...
try {// processedRequest是经过一定处理的请求对象// 这里是根据请求,获取一个能够处理该请求的Handler对象(实际是一个Handler执行链)// Handler用于对请求进行处理mappedHandler = getHandler(processedRequest);if (mappedHandler == null) {noHandlerFound(processedRequest, response);return;}// 根据Handler对象获取一个HandlerAdapter对象// 具体为啥要这一层,我们稍后会说HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler());// 在实际执行对请求的处理之前,先调用Handler的预处理方法`preHandle`if (!mappedHandler.applyPreHandle(processedRequest, response)) {return;}// 实际调用Handler,这里调用的是Handler的适配器对象,HandlerAdapter,它会返回一个ModelAndViewmv = ha.handle(processedRequest, response, // 请求处理完毕,这里调用Handler的`postHandle`方法mappedHandler.applyPostHandle(processedRequest, response, mv);
}
// 记录异常
catch (Exception ex) {dispatchException = ex;
}
catch (Throwable err) {dispatchException = new NestedServletException("Handler dispatch failed", err);
}
// 对上面一同折腾得到的处理结果进行处理,返回给前端
processDispatchResult(processedRequest, response, mapp
http://www.yidumall.com/news/90628.html

相关文章:

  • 数学网站怎么做的苏州疫情最新情况
  • 什么是网站跳出率一个免费的网站
  • 哪个网站可以接图纸做大搜推广
  • 消防做ccc去那个网站seo是什么工作
  • 500强企业网站建设球队世界排名榜
  • 公路建设市场信用信息系统网站爱站工具包
  • 北京市城市建设委员会门户网站免费seo网站推广在线观看
  • 德清县城乡建设局网站陕西网站seo
  • 东莞市石龙疫情最新消息南京百度快照优化排名
  • 前端做的网站今日国内重大新闻
  • 校园图书馆网站建设淘宝关键词查询工具哪个好
  • 公司做彩票网站违法吗百度推广售后客服电话
  • 辽宁省建设执业信息网官网seo快速优化软件网站
  • 北京搜索引擎优化经理优化教程
  • 网站开发与建设的原则seo搜索引擎优化推荐
  • wordpress 设成中文版网站优化的方式有哪些
  • brackets做的网站网站外包公司有哪些
  • 肇庆东莞网站建设外贸独立站怎么建站
  • 如何做exo网站长沙百度网站优化
  • 公众号视频网站开发电商平台建设方案
  • 给素材网站做签约设计不想做了百度网盘官网登陆入口
  • 展示型网站举例竞价托管外包代运营
  • 龙港哪里有做阿里巴巴网站百度知道下载安装
  • 大良营销网站建设精英湛江百度网站快速排名
  • c++网站开发阜阳seo
  • 网页设计 做网站的代码英文外链代发
  • 团队管理的七个要点成品网站源码的优化技巧
  • 青岛网站制作网站深圳网站维护
  • 网站开发创意想法长沙正规seo优化公司
  • 网站建设的可行性报告研究网站推广策划