r。
3. HandlerExecution表示具体的Handler,其主要作用是根据url查找控制器,如上url被查找控制器 为:hello。
4. HandlerExecution将解析后的信息传递给DispatcherServlet,如解析控制器映射等。
5. HandlerAdapter表示处理器适配器,其按照特定的规则去执行Handler。
6. Handler让具体的Controller执行。
7. Controller将具体的执行信息返回给HandlerAdapter,如ModelAndView。
8. HandlerAdapter将视图逻辑名或模型传递给DispatcherServlet。
9. DispatcherServlet调用视图解析器(ViewResolver)来解析HandlerAdapter传递的逻辑视图名。
10. 视图解析器将解析的逻辑视图名传给DispatcherServlet。
11. DispatcherServlet根据视图解析器解析的视图结果,调用具体的视图。
12. 最终视图呈现给用户。
在这里先听一遍原理,不理解没有关系,我们马上来写一个对应的代码实现大家就明白了,如果不明白,那就写10遍,没有笨人,只有懒人!
3、HelloSpringMVC
3.1、配置版
1. 新建一个Moudle , springmvc-02-hello , 添加web的支持!
2. 确定导入了SpringMVC 的依赖!
3. 配置web.xml , 注册DispatcherServlet
1 <?xml version="1.0" encoding="UTF-8"?>
2 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
5 http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
6 version="4.0">
7 <!--1.注册DispatcherServlet-->
8 <servlet>
9 <servlet-name>springmvc</servlet-name>
10 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
11 <!--关联一个springmvc的配置文件:【servlet-name】-servlet.xml-->
12 <init-param>
13 <param-name>contextConfigLocation</param-name>
14 <param-value>classpath:springmvc-servlet.xml</param-value>
15 </init-param>
16 <!--启动级别-1-->
17 <load-on-startup>1</load-on-startup>
18 </servlet>
19 <!--/ 匹配所有的请求;(不包括.jsp)-->
20 <!--/* 匹配所有的请求;(包括.jsp)-->
21 <servlet-mapping>
22 <servlet-name>springmvc</servlet-name>
23 <url-pattern>/</url-pattern>
24 </servlet-mapping>
25 </web-app>
4. 编写SpringMVC 的 配置文件!名称:springmvc-servlet.xml : [servletname]-servlet.xml 说明,这里的名称要求是按照官方来的
1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xsi:schemaLocation="http://www.springframework.org/schema/beans
5 http://www.springframework.org/schema/beans/spring-beans.xsd">
6
7 </beans>
5. 添加处理映射器
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
6. 添加处理器适配器
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
7. 添加视图解析器
1 <!--视图解析器:DispatcherServlet给他的ModelAndView-->
2 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver">
3 <!--前缀-->
4 <property name="prefix" value="/WEB-INF/jsp/"/>
5 <!--后缀-->
6 <property name="suffix" value=".jsp"/>
7 </bean>
8. 编写我们要操作业务Controller ,要么实现Controller接口,要么增加注解;需要返回一个 ModelAndView,装数据,封视图;
package com.hang.controller;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.