一、简介
SpringMVC 是一个MVC框架,是基于Model-View-Controller模式实现的。类似于Struts2等mvc框架使数据-业务-展现很好的隔离开。
每当用户在web浏览器点击链接或提交表单数据时,请求就开始工作了。SpringMVC处理请求的过程大致如下:
1、客户发送请求时,首先被前端控制器DispatherServlet拦截,DispatcherServlet会查询一个或多个控制器映射来确定由哪个Controller处理请求。(Handller mapping根据请求的URL确定相应的控制器)
2、DispatcherServlet将请求发送给相应的Controller进行处理
3、Controller处理后,将请求连同模型和视图名称发送回DispatcherServlet
4、DispatcherServlet将会用视图解析器来将逻辑视图匹配为特定的视图实现,它可能是jsp也可能不是。
二、搭建SpringMVC
SpringMVC的核心是DispatcherServlet。这个Servlet 充当SpringMVC的前端控制器。需在web.xml配置文件中配置如下:
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 初始化参数读取MVC配置文件 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<!-- 多个配置文件用逗号隔开 -->
<param-value>classpath:applicationContext-mvc.xml</param-value>
</init-param>
<!-- servlet容器启动时加载dispatcherServlet-->
<!-- 1代表加载顺序 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<!-- 注意这样也会拦截静态资源,可在applicationContext-mvc.xml中配置加载静态资源 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
解决静态资源的加载
<!-- 加载静态资源(方案一) -->
<mvc:resources mapping="/js/**" location="/static_resources/js/" />
<mvc:resources mapping="/css/**" location="/static_resources/css/" />
<mvc:resources mapping="/images/**" location="/static_resources/images/" />
<!-- 加载静态资源(方案二) -->
<!-- 自动注册DefaultAnnotationHandlerMapping、AnnotationMethodHandlerAdapter、AnnotationMethodHandlerExceptionResolver -->
<!-- 来注册handler method和request的mapping关系。 -->
<mvc:annotation-driven/>
<mvc:default-servlet-handler />