栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringMVC概述及快速入门及解析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringMVC概述及快速入门及解析

SpringMVC概述及快速入门及解析_01
  • 一、SpringMVC概述及快速入门
    • 1.1、概述
    • 1.2、快速入门
      • 1.2.1、使用Maven骨架创建Maven web项目并导入坐标
      • 1.2.2、创建Controller类和视图页面
      • 1.2.3、配置SpringMVC核心文件spring-mvc.xml
      • 1.2.4、配置SpringMVC核心控制器DispatcherServlet
      • 1.2.5、浏览器发起请求测试
  • 二、SpringMVC组件解析
    • 2.1、SpringMVC执行流程(会自己描述)
    • 2.2、SpringMVC各组件简介
      • 2.2.1、前端控制器DispatcherServlet
      • 2.2.2、处理器映射器HandlerMapping
      • 2.2.3、处理器适配器HandlerAdapter
      • 2.2.4、处理器Handler
      • 2.2.5、视图解析器ViewResolver
      • 2.2.6、视图View
  • 三、SpringMVC注解解析
    • 3.1、@RequestMapping
    • 3.2、@Controller
  • 四、SpringMVC的XML配置解析
  • 五、转发和重定向

一、SpringMVC概述及快速入门 1.1、概述

SpringMVC是一种基于Java 的实现MVC设计模型的请求驱动类型的轻量级Web框架,属于SpringframeWork的后续产品,已经融合在Spring中。

SpringMVC已经成为目前最主流的MVC框架之一,并且随着Spring3.0的发布,全面超越Struts2,成为最优秀的MVC框架。它通过一套注解,让一个简单的Java类成为处理请求的控制器,而无须实现任何接口。同时它还支持RESTful编程风格的请求。

1.2、快速入门

需求:客户端发起请求,服务器端接收请求,执行逻辑并进行视图跳转。

开发步骤

  1. 使用Maven骨架创建Maven web项目并导入坐标;

  2. 创建Controller类(类似于Servlet)和视图页面;

  3. 使用注解配置Controller类中业务方法的映射地址;

  4. 配置SpringMVC核心文件spring-mvc.xml;

  5. 配置SpringMVC核心控制器DispatcherServlet;

  6. 浏览器发起请求测试。

1.2.1、使用Maven骨架创建Maven web项目并导入坐标

pom.xml



    4.0.0

    com.qfedu
    01_springmvc_start
    1.0.0
    war

    01_springmvc_start Maven Webapp
    
    http://www.example.com

    
        UTF-8
        1.8
        1.8
    

    
        
            org.springframework
            spring-web
            5.2.6.RELEASE
        
        
            org.springframework
            spring-webmvc
            5.2.6.RELEASE
        
        
            javax.servlet
            javax.servlet-api
            provided
            3.0.1
        
        
            javax.servlet.jsp
            javax.servlet.jsp-api
            provided
            2.3.3
        

        
            junit
            junit
            4.11
            test
        
    

1.2.2、创建Controller类和视图页面

HelloController.java

//指定这是一个控制器类
@Controller
//指定这个控制器的地址
@RequestMapping("/hello")
public class HelloController {
    
    @RequestMapping("/hello")
    public String hello() {
        return "/jsp/success.jsp";
    }
}

在web目录下新建jsp目录,在该目录中创建success.jsp。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    success


    

success

1.2.3、配置SpringMVC核心文件spring-mvc.xml


     
    

1.2.4、配置SpringMVC核心控制器DispatcherServlet


    
    
        DispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
            
            contextConfigLocation
            classpath:spring-mvc.xml
        
        
        1
    
    
        DispatcherServlet
        /
    

1.2.5、浏览器发起请求测试

http://localhost:8080/hello/hello

二、SpringMVC组件解析 2.1、SpringMVC执行流程(会自己描述)

SpringMVC执行流程

  1. 用户发送请求至前端控制器DispatcherServlet;

  2. DispatcherServlet收到请求调用HandlerMapping处理器映射器;

  3. 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet;

  4. DispatcherServlet调用HandlerAdapter处理器适配器;

  5. HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器);

  6. Controller执行完成返回ModelAndView;

  7. HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet;

  8. DispatcherServlet将ModelAndView传给ViewReslover视图解析器;

  9. ViewReslover解析后返回具体View;

  10. DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中);

  11. DispatcherServlet响应用户。

2.2、SpringMVC各组件简介 2.2.1、前端控制器DispatcherServlet

用户请求到达前端控制器,它就相当于MVC模式中的C,DispatcherServlet是整个流程控制的中心,由它调用其它组件处理用户的请求,DispatcherServlet的存在降低了组件之间的耦合性。

2.2.2、处理器映射器HandlerMapping

HandlerMapping负责根据用户请求找到Handler即处理器,SpringMVC提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。

2.2.3、处理器适配器HandlerAdapter

通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。

2.2.4、处理器Handler

就是我们上面写的Controller,由DispatcherServlet把用户请求转发到Handler。由Handler 对具体的用户请求进行处理。

2.2.5、视图解析器ViewResolver

ViewResolver负责将处理结果生成View视图,ViewResolver 首先根据逻辑视图名解析成物理视图名,即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。

2.2.6、视图View

SpringMVC框架提供了很多View视图类型的支持,包括:jspView、freemarkerView、pdfView等。最常用的视图就是JSP。一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。

三、SpringMVC注解解析 3.1、@RequestMapping

作用:用于建立请求URL和处理请求类及方法之间的对应关系。

位置:

  • 类上,请求URL的第一级访问目录。此处不写的话,就相当于应用的根目录;
  • 方法上,请求URL的第二级访问目录,与类上的使用@RequestMapping标注的一级目录一起组成访问路径。

属性:

  • value:用于指请求的URL,它和path属性的作用是一样的;
  • method:用于指定请求的方式;
@RequestMapping(value = "/hello", method = RequestMethod.POST)
public String hello() {
    return "/jsp/success.jsp";
}

params:用于指定限制请求参数的条件,它支持简单的表达式,要求请求参数的key和value必须和配置的一模一样

例如:

  • params = {“accountName”},表示请求参数必须有accountName
  • params = {“moeny!100”},表示请求参数中money不能是100
@RequestMapping(value = "/hello", method = RequestMethod.GET, params = {"username"})
public String hello() {
    return "/jsp/success.jsp";
}

如果限制请求的方式,可以使用如下注解进行地址映射:

  1. @GetMapping(地址),限制只接收get请求;
  2. @PostMapping(地址),限制只接收post请求。
3.2、@Controller

指定这是一个控制器类,这个注解的作用和@Component作用是一样的,用来配置bean让Spring容器进行管理。配置了@Controller注解之后,需要在SpringMVC配置文件中配置包扫描:

四、SpringMVC的XML配置解析

配置视图解析器


    
    
    
    

修改HelloController中的方法

@RequestMapping("/hello")
public String hello() {
    return "success";
}
五、转发和重定向

我们在Controller中写的方法,默认以转发的方式转发到相应名称的试图,如果希望明确配置转发和重定向,在视图名称前加上forward:或者redirect:。

@RequestMapping("/hello1")
public String hello1() {
    return "forward:/jsp/success.jsp";
}


@RequestMapping("/hello2")
public String hello2() {
    return "redirect:/jsp/success.jsp";
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/301630.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号