1. MVC :Model-View-Control
C 层要完成的主要工作:封装web 请求为一个数据对象、调用业务逻辑层来处理数据对象、返回处理数据结果及相应的视图给用户。
Spring C 层框架的核心是 DispatcherServlet,它的作用是将请求分发给不同的后端处理器,Spring 的C 层框架使用了后端控制器来映射处理器和视图解析器来共同完成C 层框架的主要工作。并且spring 的C 层框架还真正地把业务层处理的数据结果和相应的视图拼成一个对象,即我们后面会经常用到的ModelAndView 对象。
2. 实际应用
1) Jar包
项目采用maven发布打包发布,运用到的部分jar包
2) 创建 Web项目,配置web.xml,代码如下
u <load-on-startup>1</load-on-startup>是启动顺序,让这个Servlet随Servletp容器一起启动。
u <url-pattern>*.do</url-pattern> 会拦截*.do结尾的请求。
u <servlet-name>spring</servlet-name>这个Servlet的名字是spring,可以有多个DispatcherServlet,是通过名字来区分的。每一个DispatcherServlet有自己的WebApplicationContext上下文对象。同时保存的ServletContext中和Request对象中,关于key,以后说明。在DispatcherServlet的初始化过程中,框架会在web应用的 WEB-INF文件夹下寻找名为[servlet-name]-servlet.xml 的配置文件,生成文件中定义的bean。
3) 建立spring-servlet.xml
主要代码如下:
SimpleUrlHandlerMapping 根据定义转发请求,hello.do的请求将会将会交给helloControl控制器处理
4) 业务控制器
5) 返回的ModelAndView是包含业务和视图的混合对象,hello是返回的界面,在[spring-servlet.xml]中我们已经进行了配置,即返回的是/WEB-INF/page/hello.jsp
InternalResourceViewResolver为视图解析器
Prefix:将在Controller返回的ModelAndView的基础上,加上目录前缀/WEB-INF/jsp/
Suffix:加后文件名称后缀.jsp,由此等待下个页面如/WEB-INF/jsp/showCats.jsp
3. 测试
IE中键入: http://localhost:8031/SpringDemo/hello.do
响应: