SpringMVC简介

SpringMVC是Spring框架的一部分。相当于servlet的一个升级。SpringMVC创建控制器对象,放入SpringMVC容器中。

SpringMVC使用

1、在web工程中添加依赖

1
2
3
4
5
6
7
8
9
10
11
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>

2、在web.xml文件中注册中央处理对象DispacherServlet

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!--注册springMVC核心依赖DispatcherServlet
tomcat服务器启动后创建DispatcherServlet实例对象,同时读取配置文件创建容器对象-->
<servlet>
<servlet-name>springMVC</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>
<!-- 在tomcat启动后,创建Servlet对象 数值越小创建越早-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

3、在springmvc配置文件中注册组件扫描器

1
2
   <!-- 声明组件扫描器 创建Controller对象  -->
<context:component-scan base-package="com.zyz.controller"/>

4、编写MyController处理请求

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Controller
public class MyController {
/**
* 处理some.do请求
* @return 请求处理完成后,返回用户的数据
*/
@RequestMapping("/hello")// 请求映射,将请求地址与请求方法绑定
public ModelAndView doSome(){
ModelAndView modelAndView = new ModelAndView();
// 添加数据 框架请求的最后将数据放入Request域中
modelAndView.addObject("msg","hello,SpringMVC");
// 指定视图 框架对视图执行forward操作
modelAndView.setViewName("/show.jsp");
// 返回modelAndView
return modelAndView;
}
}

5、页面

请求页面:index.jsp

1
2
3
4
5
6
7
8
9
10
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>index.jsp</title>
</head>
<body>
<p>第一个springMVC程序</p>
<p><a href="some.do">发起some.do请求</a></p>
</body>
</html>

跳转页面:show.jsp

1
2
3
4
5
6
7
8
9
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>show.jsp</title>
</head>
<body>
<p>msg数据:${msg}</p>
</body>
</html>

SpringMVC请求的处理过程

SpringMVC内部执行流程:

使用视图解析器

在springmvc配置文件中声明视图解析器:

1
2
3
4
5
6
7
<!--  声明springmvc框架中的视图解析器  帮助开发人员设置视图文件的路径  -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--前缀 视图文件的路径-->
<property name="prefix" value="/WEB-INF/view/" />
<!--后缀 视图文件的拓展名-->
<property name="suffix" value=".jsp"></property>
</bean>
1
2
// 配置视图解析器后,可直接使用文件名指定视图
modelAndView.setViewName("show");