1.创建Hello World步骤
1).导包
1).springmvc是spring的web模块,是所有模块的运行,都是依赖核心模块(Ioc模块)
commons-logging-1.2.jar
spring-beans-4.0.0.RELEASE.jar
spring-context-4.0.0.RELEASE.jar
spring-core-4.0.0.RELEASE.jar
spring-expression-4.0.0.RELEASE.jar
commons-logging-1.1.3.jar
spring-web-3.2.13.RELEASE.jar
spring-webmvc-3.2.13.RELEASE.jar
2).web模块
<!--Springmvc思想是有一个前端控制器能拦截所有请求,并智能派发;
这个前端控制器是一个servlet,应该在web.xml中配置servlet来拦截所有请求
-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<!-- 初始化参数 -->
<init-param>
<!--contextConfigLocation:指定springmvc配置文件的位置-->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<!--servlet启动加载,servlet原本是第一次访问创建对象;
load-on-startup:服务器启动的时候创建对象,值越小优先级越高,越先创建对象
-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!--/*和/都是拦截所有请求,
/:会拦截所有请求,但不会拦截*.jsp;能保证jsp访问正常
/*的范围更大,还会拦截.jsp这些请求,,一旦拦截jsp页面就不能显示了-->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
2).写配置:自身框架需要的配置
创建springmvc的配置文件,命名为springmvc-servlet.xml
<!-- 配置处理器映射HandlerMapping -->
<!--annotation-driven:配置该标签会自动注册DefaultAnnotationHandlerMapping(处理映射)与
AnnotationMethodHandlerAdapter(处理器适配器)这两个Bean。Spring MVC需要通过这两个Bean实例来完成
对@Controller和@RequestMapping等注解的支持,从而找出URL与handler method的关系并予以关联 -->
<mvc:annotation-driven/>
<!--扫描所有组件-->
<context:component-scan base-package="cn.bdqn"/>
<!-- 配置视图解析器 -->
<bean class=" org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="WEB-INF/page/"/>
<property name="suffix" value=".jsp"/>
</bean>
3)测试:
HelloWorld细节:
1.运行流程:
1).客户端点击链接会发送http://localhost:8080/springmvc/hello
2).来到tomcat服务器;
3).springmvc的前端控制器收到所有请求:
4).来看请求地址@RequestMapping标注的哪个匹配,来找到到底使用那个类的哪个方法来处理
5).前端控制器找到了目标处理器和方法,直接利用反射执行目标方法;
6).方法执行完成以后有一个返回值:Springmvc认为这个返回值就是要去的页面地址;
7).拿到方法返回值后,用视图解析器进行拼串得到完整的页面地址;
8).拿到页面地址,前端控制器帮我们转发到页面