Spring MVC是Spring提供的一个基于MVC设计模式的轻量级Web开发框架,本质上相当于Servlet。
Spring MVC是结构清晰的Servlet+JSP+JavaBean实现,是一个典型MVC架构。
在Spring MVC框架中,Controller替换Servlet来担负控制器的职责,用于接受请求,调用相应的Model进行处理,处理器完成业务处理后返回处理结果。Controller调用相应的View并对处理结果进行视图渲染,最终客户端得到响应信息。
Spring MVC的注解驱动和对REST风格的支持,也是它最具特色的功能。无论是在框架设计,还是扩展性、灵活性等方面都全面超越Struts2等MVC框架。并且由于Spring MVC本身就是Spring框架的一部分,可以与Spring框架无缝集成,性能方面具有先天优越性。
1.1、Spring MVC优点- 清晰的角色划分,Spring MVC在Model、View、Controller方面提供了一个非常清晰的角色划分。
- 灵活的配置功能,可以把类当做Bean通过XML进行配置。
- 提供了大量控制器接口和实现类,开发者可以使用Spring提供的控制实现类,也可以自己实现控制器接口。
- 真正做到与View层的实现无关,它不会强制开发者使用JSP,可以根据项目需求选择技术。
- 国际化支持
- 面向接口编程
- 与Spring框架无缝集成
新建一个springmvcDemo项目
2.1、在pom.xml中引入相关jar包2.2、定义DispatcherServlet4.0.0 com.jsonliu springmvcDemo 1.0-SNAPSHOT springmvcDemo war 1.8 1.8 5.7.0 javax.servlet javax.servlet-api 4.0.1 provided javax.servlet jstl 1.2 org.slf4j jcl-over-slf4j 1.7.26 mysql mysql-connector-java 8.0.18 org.junit.jupiter junit-jupiter-api ${junit.version} test org.junit.jupiter junit-jupiter-engine ${junit.version} test org.springframework spring-web 5.2.3.RELEASE org.springframework spring-webmvc 5.2.3.RELEASE org.springframework spring-context 5.2.3.RELEASE org.springframework spring-test 5.2.3.RELEASE org.springframework spring-jdbc 5.2.3.RELEASE commons-fileupload commons-fileupload 1.3.1 org.apache.commons commons-lang3 3.4 org.apache.maven.plugins maven-war-plugin 3.3.0
Spring MVC是基于Servlet的,DispatcherServlet是整个Spring MVC框架的核心,主要负责拦截请求并将其分派给相应的处理器处理。所以配置Spring MVC首先要定义DispatcherServlet。和所有servlet一样在web.xml中配置。
springMVC springmvc org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:springmvc-servlet.xml 1 springmvc /
Spring MVC 初始化时将在应用程序的 WEB-INF 目录下查找配置文件,该配置文件的命名规则是“servletName-servlet.xml”,例如 springmvc-servlet.xml。
也可以将 Spring MVC 的配置文件存放在应用程序目录中的任何地方,但需要使用 servlet 的 init-param 元素加载配置文件,通过 contextConfigLocation 参数来指定 Spring MVC 配置文件的位置。
2.3、创建springmvc-servlet.xml配置文件2.4、创建LoginController和RegisterController
public class LoginController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
return new ModelAndView("/WEB-INF/jsp/login.jsp");
}
}
public class RegisterController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
return new ModelAndView("/WEB-INF/jsp/register.jsp");
}
}
2.5、index.jsp、register.jsp、login.jsp
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
JSP - Hello World
未注册用户,请前往 注 册
已注册用户,请前往 登 录
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
登录页面!
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
注册页面!
2.6、运行效果
配置好tomcat,启动项目



