文章目录
1、SpringMVC概述
SpringMVC是一种基于Java实现MVC模型的轻量级Web框架
优点:使用简单,相比Servlet开发更加便捷,灵活性强

MVC(Model View Controller),一种用于设计创建Web应用程序表现层的模式
作用:分离数据的存储和数据的展示
- Model(模型):数据模型,用于封装数据
- View(视图):页面视图,用于展示数据
- Controller(控制器):处理用户交互的调度器,用于根据用户需求处理程序逻辑

2、使用SpringMVC技术开发
开发程序流程
- 创建Web工程
- 导入坐标(spring-webmvc + Servlet)
- SpringMVCConfig配置类,配置前缀后缀
- ServletConfig配置类创建IOC容器和拦截请求
- 自定义控制器类
- 开发视图页面
代码实现
1、创建Web工程

2、在pom.xml导入坐标
xml
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
</dependencies>
3、初始化SpringMVC环境(同Spring环境)
java
@Configuration
@ComponentScan("com.demo")
public class SpringMvcConfig {
//创建视图解析器
@Bean
public InternalResourceViewResolver internalResourceViewResolver(){
InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver();
internalResourceViewResolver.setPrefix("/pages/"); //设置前缀
internalResourceViewResolver.setSuffix(".jsp"); //设置后缀
return internalResourceViewResolver;
}
}
4、初始化Servlet容器,加载SpringMVC环境,并设置SpringMVC请求拦截的路径
java
public class ServletConfig extends AbstractDispatcherServletInitializer {
//加载Springmvc配置
@Override
protected WebApplicationContext createServletApplicationContext() {
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
ctx.register(SpringMvcConfig.class);
return ctx;
}
//设置Tomcat接收的请求 / 表示所有请求都会被mvc处理
@Override
protected String[] getServletMappings() {
return new String[]{"/"};
}
@Override
protected WebApplicationContext createRootApplicationContext() {
return null;
}
//过滤器解决中文乱码
@Override
protected Filter[] getServletFilters() {
CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
characterEncodingFilter.setEncoding("utf-8");
return new Filter[]{characterEncodingFilter};
}
}
5、创建SpringMVC控制器类(等同于Servlet功能)
java
@Controller
@RequestMapping("/user") //表示所有方法都会在原有的路径上加上/user
public class UserController {
@RequestMapping("/save")
public String sava(){
return "success";
}
}
6、开发视图页面,创建展现的视图页面,在webapp目录下创建pages目录,pages目录下创建success.jsp页面

3、SpringMVC执行流程
一个核心控制器和三大组件
DispatcherServlet:前端控制器,是整体流程控制的中心,由其调用其它组件处理用户的请求,有效的降低了组件间的耦合性
RequestMappingHandlerMapping :处理器映射器,负责根据用户请求路径找到对应Controller控制器方法
RequestMappingHandlerAdapter :处理器适配器,执行Controller控制器的方法
InternalResourceViewResolver :视图解析器,根据Controller控制器方法返回值解析找到展现数据的jsp页面输出数据展现
