一、SpringMVC 概述
- Spring 实现 Web 模块,简化 Web 开发;
- Spring 为展现层提供的基于 MVC 设计理念的优秀的 Web 框架,是目前最主流的 MVC 框架之一 。
- Spring3.0 后全面超越 Struts2,成为最优秀的 MVC 框架 。
- Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请 求的控制器,而无须实现任何接口。
- 支持 REST 风格的 URL 请求。
- 采用了松散耦合可插拔组件结构,比其他 MVC 框架更具 扩展性和灵活性。
二、SpringMVC 入门
1、引入 jar 包

2、在 web.xml 中配置前端控制器 DispatcherServlet
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- SpringMVC 的思想是:有一个前端控制器拦截所有请求,并智能转发请求, 这个拦截器是一个 Servlet ,因此应该在 Web.xml
文件中进行配置拦截所有请求 -->
<!-- The front controller of this Spring Web application, responsible for
handling all application requests -->
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<!-- 指定配置文件位置 -->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!-- 启动加载延迟时间,值越小,优先级越高,越优先创建 -->
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Map all requests to the DispatcherServlet for handling -->
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<!-- / 拦截所有 ,拦截所有请求,不拦截jsp ,/* 会拦截 *。jsp,页面无需拦截,否正无法显示页面 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
3、加入 SpringMVC 配置文件
<!-- 扫描所有包 -->
<context:component-scan base-package="org.wdh01"></context:component-scan>
<!-- 配置视图解析器 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
4、编写处理请求的处理器,并标识为处理器
@Controller public class FirstController { /** * 配置处理请求地址 * @return */ @RequestMapping("/hello") public String firstController() { System.out.println(" 请求收到了,正在处理。。。。"); return "success"; } }
5、编写视图
ogin.jsp 添加按钮
<a href="helloworld">helloworld SpringMvc</a>
/WEB-INF/pages/ 创建 响应页面
<h3>Success Page</h3>
6、运行效果


7、运行流程
/** * SpringMvc HelloWorld 运行流程 * 1、客户发送请求:http://localhost:8080/1springmvc_helloworld/hello * 2、来到 tomcat 服务器 * 3、前端控制器 springDispatcherServlet 获取请求 * 4、@RequestMapping 标注放的请求地址与获取的请求地址进行匹配,决定使用具体的方法 * 5、前端控制器找到目标处理类和目标方法并执行 * 6、执行完目标方法获取返回值 * 6、视图解析器拿到返回值拼 * 7、视图解析器通过地址转发响应页面 * /