直接用一个注册的小例子来说明一下springMvc的工作原理
1,按照上一篇springMvc的基础配置新建一个web项目,这个步奏我们需要写好web.xml,springContext.xml,springMvc.xml这三个配置文件,还需要导入相应的jar包。
2.直接运行工程,输入用户名和密码提交如图:
可以看到浏览器上url的请求: http://localhost:8080/springMvcTest03/register.do 当程序请求register.do的时候,由于工程在程序入口的web.xml配置文件中加入了:
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/springContext.xml,/WEB-INF/springMvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
服务器接受url的请求,调用DispatcherServlet来处理请求,打开DispatcherServlet的定义,部分定义如下:
在 List<HandlerMapping> handlerMapping 链表中,每个handlerMapping 中存放了 url和 Controller的对应的关系,通过这个对应关系 url中的register.do就可以找到对应的controller
3,开始执行定义的controller中的方法,执行结束之后,如果返回字符串则将字符串转化成相应的视图对象;如果返回的是ModelAndView,该对象中本身就包含了视图对象的信息。
4,如果DispacherServlet返回的是ModelAndView对象,还需要将该对象的数据进行解析,输出给服务器
5.最后服务器将数据输出到浏览器。
整个从发送,处理,得到视图结果的过程执行结束。