springMVC就是类似于Struts2的mvc框架,属于SpringFrameWork的后续产品。
2 为什么学SpringMVC?
3 SpringMVC入门
3.1 开发环境
Jdk:jdk1.7
Eclipse:mars
Tomcat:apache-tomcat-7
spring:4.2.4
3.2 开发步骤
3.2.1 创建Dynamic web项目
例如01-springmvc
3.2.2 导入springmvc的jar包
3.2.3 编写TestController类
@Controller
public class HelloController {
@RequestMapping("hello")
public ModelAndView hello(){
System.out.println("hello springmvc....");
//创建ModelAndView对象
ModelAndView mav = new ModelAndView();
//设置模型数据
mav.addObject("msg", "hello springmvc...");
//设置视图名字
mav.setViewName("/WEB-INF/jsp/hello.jsp");
return mav;
}
}
3.2.4 创建hello.jsp页面
3.2.5 创建与配置springmvc.xml核心配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<!-- 配置@Controller处理器,包扫描器 -->
<context:component-scan base-package="com.itheima.springmvc.controller" />
</beans>
3.2.6 在web.xml中配置前端控制器
<!-- 配置前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 加载springmvc核心配置文件 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<!-- 配置拦截路径 -->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
3.2.7 启动项目通过浏览器测试
3.3 小结-springmvc代码执行流程
1、 通过请求地址发起请求,去web.xml里去查找
2、 *.action被servlet-mapping拦截
3、 拦截里面要被控制器处理
4、 加载springmvc核心配置文件
5、 找到核心配置文件
6、 找到配置扫描包
7、 加载对应的类文件
8、 标识控制器
9、 绑定请求地址
10、进行操作
5 SpringMVC架构
5.1 框架默认加载组件
5.1.1 处理器映射器与处理器适配器
5.1.1.1 处理器映射器
从spring3.1版本开始,废除了DefaultAnnotationHandlerMapping的使用,推荐使用RequestMappingHandlerMapping完成注解式处理器映射。
<!-- 配置处理器映射器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
5.1.1.2 处理器适配器
从spring3.1版本开始,废除了AnnotationMethodHandlerAdapter的使用,推荐使用RequestMappingHandlerAdapter完成注解式处理器适配。
<!-- 处理器适配器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />
5.1.1.3 小结
映射器与适配器必需配套使用,如果映射器使用了推荐的RequestMappingHandlerMapping,适配器也必需使用推荐的RequestMappingHandlerAdapter。
5.1.1.4 注解驱动
<!-- 注解驱动配置,代替映射器与适配器的单独配置,同时支持json响应(推荐使用) -->
<mvc:annotation-driven />
5.1.2 视图解析器
<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置视图响应的前缀 -->
<property name="prefix" value="/WEB-INF/jsp/" />
<!-- 配置视图响应的后缀 -->
<property name="suffix" value=".jsp" />
</bean>
5.2 总结-springMVC架构