SpringMVC:HelloWorld


一、概述

1、什么是SpringMVC

Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet。
Spring MVC 是结构最清晰的 Servlet+JSP+JavaBean 的实现,是一个典型的教科书式的 MVC 构架,不像 Struts 等其它框架都是变种或者不是完全基于 MVC 系统的框架。
Spring MVC 角色划分清晰,分工明细,并且和 Spring 框架无缝结合。Spring MVC 是当今业界最主流的 Web 开发框架,以及最热门的开发技能。
在 Spring MVC 框架中,Controller 替换 Servlet 来担负控制器的职责,用于接收请求,调用相应的 Model 进行处理,处理器完成业务处理后返回处理结果。Controller 调用相应的 View 并对处理结果进行视图渲染,最终客户端得到响应信息。
Spring MVC 框架采用松耦合可插拔的组件结构,具有高度可配置性,比起其它 MVC 框架更具有扩展性和灵活性。
此外,Spring MVC 的注解驱动和对 REST 风格的支持,也是它最具特色的功能。无论是在框架设计,还是扩展性、灵活性等方面都全面超越了 Struts2 等 MVC 框架。并且由于 Spring MVC 本身就是 Spring 框架的一部分,所以可以说与 Spring 框架是无缝集成,性能方面具有先天的优越性,对于开发者来说,开发效率也高于其它的 Web 框架,在企业中的应用越来越广泛,成为主流的 MVC 框架。

2、SpringMVC的优点

  • 可以支持各种视图技术,而不仅仅局限于JSP;
  • 与Spring框架集成(如IOC容器、AOP等);
  • 清晰的角色分配:前端控制器(dispatcherServlet) , 请求到处理器映射(handlerMapping), 处理器适配器(HandlerAdapter), 视图解析器(ViewResolver)。
  • 支持各种请求资源的映射策略。

二、初体验HelloWorld

1、创建一个maven项目,添加web依赖。

2、在pom.xml文件中引入依赖

        
        
            org.springframework
            spring-webmvc
            5.3.1
        
        
        
            javax.servlet
            javax.servlet-api
            3.1.0
            provided
        
        
        
            org.thymeleaf
            thymeleaf-spring5
            3.0.14.RELEASE
        
        
        
            ch.qos.logback
            logback-classic
            1.2.9
        

3、在web.xml文件中配置springmvc的Dispatcher前端过滤器,设置springmvc配置文件的名称和位置

Spring MVC 初始化时将在应用程序的 WEB-INF 目录下查找配置文件,该配置文件的命名规则是“servletName-servlet.xml”,例如 DispatcherServlet-servlet.xml。也可以将 Spring MVC 的配置文件存放在应用程序
目录中的任何地方,但需要使用 servlet 的 init-param 元素加载配置文件,通过 contextConfigLocation
参数来指定 Spring MVC 配置文件的位置。

    
        DispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:springmvc.xml
        
    
    
        DispatcherServlet
        
        /*
    

4、配置springmvc.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>


    
    
    
    
    
        
        
    

    
    

    
    

5、创建一个Controller类,编写跳转逻辑。

@Controller
public class HelloController {
    @RequestMapping("/hello")
    private String hello(){
        return "success";
    }
}

6、测试

通过在html页面发送请求,访问Controller方法,通过视图解析器解析返回页面。
在html页面的路径中,/默认代表访问localhost:8080,例如:
访问target页面
访问路径为http://localhost:8080/target,
注意:
1、如果web程序在部署时设置上下文路径不是/,此时访问路径就需要额外增加上下文路径,例如上下文路径为
此时访问路径就需要增加上下文路径:http://localhost:8080/SpringMVC/target
2、由于上下文路径会发生变化,所以我们一般建议进行如下设置,例如:
Tyemeleaf:访问target页面
JSP:测试
通过这种方式,在检索到路径为相对路径时就会自动增加上下文路径