关于Springmvc的自己工作中使用的体会

今天在写代码之后遇到了can not handler "controller名字" to url  path.

解决了这个问题之后,才发现自己对于SpringMvc的原理掌握的很少,特此记录一下。自己平时的教学视频看了不少,网上的各种原理也看了不少,但是实际应用起来真的没有去用心去想。

下面好好记录一下自己对于原理的大致理解。

当我们从前台通过URL请求数据时,那么这个URL首先会被springmvc自带的dispatcherServlet捕获,当然也不是所有URL都会被捕获,具体捕获哪些类型在web.xml配置文件中配置,这里不详细说。这个dispatcherServlet说的高大上点叫中央处理器。

当dispatcherServlet捕获到我们请求的URL,他接下来就会去调用handlermapping这个东东,这个东东是干嘛的呢,就是找到你的代码里controller注解上的名字,因为这个名字是和你请求的URL某一部分一样,找到了对应的你写的注解才可以去执行注解下面的方法。所以当bug是can not map handler就说明URL和你的controller映射出现了问题,直接去看自己的URL或者controller注解即可解决,可惜自己当时把这些原理忘的一干二净。找了半天才找到。

接着说,既然handlermapping找到了对应的controller,他的任务就完成了,他会把这个找到的结果告诉dispatcherServlet,dispatcherServlet这个大哥可是很忙的,大哥收到这个反馈之后就会调用handlerAdatper,之前我想过既然handlermapping找到了对应的类,直接去执行类里面的方法不就可以了嘛,后来看到大家的回答是handlerAdatper是负责数据绑定一系列的操作。并不是找到了对应类就去执行,对于此处,可以去找资料,很多,具体的handlerAdatper内部实现方式我确实也不知道。

接下来,handlerAdatper回执行controller的对应的方法,具体是哪个方法,就是requestmapping和URL对应,执行完毕之后我们一般返回modelandview,当然也有返回VO,这个小弟干完活也要告诉大哥dispatcherServlet一下,并且把对应的model and view给大哥。

大哥说,我这刚歇一会,又来烦我,于是大哥又把viewresolver叫过来,说这是你的活,赶紧把它干完,这个viewResolver网上一般叫视图解析器,他会根据你的model and view中的view找到对应的jsp页面,然后他会报告大哥dispatcherServlet活干完了。

最后,大哥拿到对应的jsp页面加上对应的数据返回给前台。长吁一口气,累死老子了。

以上就是一个普通的通过URL请求的过程。由此可见大哥dispatcherServlet在这个过程至关重要的位置。

以下是摘自一位博主的分享,具体在这里。

猜你喜欢

转载自blog.csdn.net/dghkgjlh/article/details/84943056
今日推荐