SpringMVC笔记:Hello world
SpringMVC是Spring Framework的一部分,是基于Java实现的轻量级MVC Web框架,SpringMVC框架主要围绕DispatcherServlet(Servlet调度)进行设计的,会将收到的请求使用DispatcherServlet分发到不同的Controller进行处理。SpringMVC特点:
- 轻量级,简介灵活,也简单易学。
- 是一个基于请求和响应的MVC框架,非常高效。
- 与Spring兼容性非常好。
- 约定大于配置。
- 功能强大,支持RESTful风格、数据校验、数据格式化、拦截器等。
Hello world示例
此示例中使用的是原始的方式,即实现Controller接口的方式,可以更加直观的体现SpringMVC的执行流程和原理,但是实际上,平常工作中更多的是使用注解来进行开发。
pom配置
以下只是列了常用的pom配置和可能需要的一些依赖,实际运行时也可以自己调整依赖的版本和添加其他的配置和依赖。
junit
junit
4.12
test
org.springframework
spring-webmvc
5.1.9.RELEASE
javax.servlet
servlet-api
2.5
javax.servlet.jsp
jsp-api
2.2
javax.servlet
jstl
1.2
org.projectlombok
lombok
1.16.10
com.fasterxml.jackson.core
jackson-databind
2.13.1
com.alibaba
fastjson
1.2.79
src/main/java
**/*.properties
**/*.xml
false
src/main/resources
**/*.properties
**/*.xml
false
web.xml配置
给module添加了web支持之后,就会在 web/WEB-INF 目录下生成web.xml文件。
<?xml version="1.0" encoding="UTF-8"?>
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc-servlet.xml
1
springmvc
/
Spring配置文件
在web.xml中指定了Spring配置文件之后,接下来自然就需要继续配置Spring了。
<?xml version="1.0" encoding="UTF-8"?>
实现Controller接口
由于Spring配置文件中配置了对应请求的Controller处理器,所以实现了Controller接口之后,来自浏览器的请求就会先经过接口的handleRequest进行处理,处理之后再进入到jsp页面,最后再返回给浏览器。
package com.yun.controller;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloController implements Controller {
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView mv = new ModelAndView();
// 设置在ModelAndView对象里的数据,可以直接在jsp文件中以${msg}的方式拿到
mv.addObject("msg", "HelloSpringMVC!");
// 由于在Spring配置文件中配置了前缀和后缀,这里返回hello之后就会自动映射到/WEB-INF/jsp/hello.jsp
mv.setViewName("hello");
return mv;
}
}