Spring-mvc是一种基于Java的实现了Webmvc设计模式的请求驱动类型的轻量级Web框架,即使用了mvc架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring-mvc也是要简化我们日常Web开发的。
当然我们做web开发的,也有人使用过struts。笔者自己也改过struts项目的BUG。这都是一些很久的老项目了,尽管struts有版本的更新,但是年被曝出存在重要的安全漏洞,很多用了struts框架项目的公司都慌了。。。运维工程师很痛苦。
Spring-mvc原理
先来个草图看一下,然后大致解释下,说错了,帮大家巩固下它的工作原理。其实看上面的图基本能晓得了。流程如下:
1、用户发送请求到前端控制器DispatcherServlet。2、前端控制器请求HandlerMapping查找Handler,可以根据xml配置、注解进行查找。3、HandlerMapping返回Handler(也就是我们常说的控制器,controller)。4、处理器适配器执行Handler。5、Handler返回ModelAndView,HandlerAdapter将它返回给DispatcherServlet。6、DispatcherServlet将ModelAndView传给ViewReslover视图解析器。7、ViewReslover解析后返回具体View。8、DispatcherServlet渲染View返回给用户。流程就这样的,看图结合文字是不是挺清晰明了的。但是有的面试官可是很刁钻的,他不但问你原理,还要问你如果让你去实现,你会怎么做,这可让人抹一把汗了。。。
下面例子让你神清气爽。
手写Spring-mvc
1)新建一个maven项目,在pom.xml中导入以下依赖:
!--