(本博客只为记录学习过程中的点滴,如对他人有所帮助,深表荣幸)
一,spring MVC request请求流程:
下面这张图是SpringMVC将控制,消息,视图分层的典型图(原创),同时Dispacherservlet作为一个核心控制器同样将客户端和View层进行了分离。
二,对于上面的框架进行简要说明:
1,页面上的request来到DispacherServlet,需要通过多个处理器映射(HandlerMapping)选择性的分发给对应的控制器。
2,信息处理后返回到DispacherServlet,同样需要视图解析器,这是一个将视图名称同jsp匹配的过程,典型的以InternalResourceViewResolver为例,InternalResourceViewResolver为视图名称加上前缀和后缀得到一个视图模版的路径,在配置文件中配置如下:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
假设视图名称为home,那么InternalResourceViewResolver就会将其解析成/WEB-INF/views/home.jsp,并传送给对应的jsp去视图化处理。
3,在web.xml中,springMVC默认加载,<servlet class>同name的xml文件,但是为了将xml做规范化处理,并不是所有的bean都配置在该xml文件中,所以需要在web.xml中配置<listener>
<listener-class>
org.spring.framework.web.context.ContextLoaderListener
<listener-class>
<listener>
同时在servlet中为ContextLoaderListener配置contextConfigLocation参数:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spitter-security.xml
classpath:service-context.xml
classpath:persistence-context.xml
classpath:dataSource-context.xml
</param-value>
</context-param>