一、SpringMVC
SpringMVC是针对web开发提出的MVC框架,关于MVC,这里就不多讲了,Model层,View层和Controller。
二、SpringMVC流程
本文主要对SpringMVC的架构和流程进行简单讲解,并且结合一个HelloWorld来分析。
先上图:
从上图可以看出,springMVC为了解耦,将MVC三个模块分开,引入了一个被称为前端控制器的东西(DispatcherServlet),就拿医院来分析,如果各个科室例如儿科,妇科,内科等是controller的话,那么前台就是DispatcherServlet。当一个请求到达的时候,会先经过DispatcherServlet,然后由DispatcherServlet来去查找HandlerMapping,来决定应该把这个请求分配给哪个controller去处理。
在代码中,DispatcherServlet就是一个servlet,需要在web.xml中进行注册:
在dispatcher-servlet.xml中,主要就是去扫描所有的controller,然后决定把请求交给哪个controller去处理。
继续按照流程走,当请求被交给具体的controller的时候,controller会调用相应的service进行处理,controller会将得到的结果通过ModelAndView的形式返回给前端控制器DispatcherServlet。
如下图所示,截取自某个controller中的方法:
可以看到,printHello返回的方法是一个Jsp文件的名字,明天pringHello方法中,往ModelMap的对象中存入了数据。
继续按照流程走,当前端控制器拿到ModelAndView后,会选择ViewResolver去解析View。ViewResolver同样被配置在dispatcher-servlert.xml文件中:
其中定义了前缀属性来标明jsp文件的路径,后缀属性指定返回的view用jsp的形式展示出来。
最后,将从controller中获得的model展示在view(jsp文件中):
jsp文件中,通过$的方式取得controller传回来的view。
最后,JSP文件会通过response流返回给浏览器,进而展现给用户。这就是一个SpringMVC的架构和流程。
领取专属 10元无门槛券
私享最新 技术干货