一、简介
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 />