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

一次性讲清Sprig MVC

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

一次性讲清Sprig MVC

一次性讲清Sprig MVC

Spring 如何开发 Web 应用?
使用的 Spring Framework 中的一个组件,Spring Web MVC、简称 Spring MVC

1.Spring MVC 核心组件

1、DispatcherServlet:前置控制器,Spring MVC 最核心的组件,用来控制其他组件的调用。
2、Handler:处理器,完成具体的 Controller 的业务,相当于 Servlet。
3、HandlerMapping:映射 DispatcherServlet 和 Handler。
4、HandlerInterceptor:处理器拦截器,完成拦截请求的工作。
5、ModelAndView:装载了模型数据和视图信息。
6、ViewResolver:视图解析器,将 ModelAndView 中包含的逻辑视图,映射成真正的物理视图。

2.Spring MVC 核心流程


工作流程:
1、客户端请求被 DispatcherServlet 接收。
2、根据 Mapping 找到对应的 Handler 的业务方法。
3、Handler 和 HandlerInterceptor 以 HandlerExecutionChain 的形式一并返回给 DispatcherServlet。
4、DispatcherServlet 通过 HandlerAdapter 调用 Handler 的业务方法,返回一个 ModelAndView 给 DispatcherServlet。
5、DispatcherServlet 将获取的 ModelAndView 传给 ViewResolver 视图解析器,将逻辑视图转换为物理视图。
6、将 View 返回给 DispatcherServlet,响应给客户端。
优点
1、DispatcherServlet 是整个流程的核心中枢,负责调度各个组件的执行,每个组件的调用都是由 DispatcherServlet 来控制的,执行结果统一交给 DispatcherServlet。
2、这种方式实现了解耦合

3.Spring MVC 的使用

1.创建环境
导入依赖


  org.springframework
  spring-webmvc
  5.3.4

2.每个框架都会有自己的一个配置文件,Spring MVC 也有自己的配置文件 springmvc.xml,视图解析器等等都需要在 springmvc.xml 中进行配置。
springmvc.xml 在加载的时候需要被 DispatcherServlet 读取到。




  Archetype Created Web Application

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





    
    

    
    
        
        
    


4.Spring MVC 的常用注解

1. @RequestMapping
Spring MVC 框架通过 @RequestMapping 注解将 URL 请求与业务方法进行映射,在控制器的类定义处以及方法定义处都可以添加@RequestMapping 注解。

@Controller
@RequestMapping(value = "/hello")
public class HelloController {

    @RequestMapping(value = "/rest")
    public String rest(){
        return "index";
    }

    @RequestMapping(value = "/test")
    public ModelAndView index(){
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("mess", "Hello Spring MVC");
        modelAndView.setViewName("index");
        return modelAndView;
    }
}

2. method:指定请求的 method 类型,get、post
Postman 是一个客户端请求模拟工具,用来测试 Java 后台接口。

@PostMapping("/rest")
public String rest(){
    return "index";
}

@GetMapping("/get")
public String get(){
    return "get";
}

@PostMapping("/put")
public String put(){
    return "put";
}

@DeleteMapping("/delete")
public String delete(){
    return "delete";
}

3. params:请求中必须包含的参数,没有参数请求无法调用。

@PostMapping(value = "/rest",params = {"id=10","name"})
public String rest(){
    return "index";
}
5.Spring MVC 数据绑定

URL 参数映射成业务方法的形参
key-value 形式的参数使用 @RequestParam
json 形式的参数使用 @Pathvariable

@PostMapping(value = "/rest",params = {"id=10","name"})
public String rest(@RequestParam("id") Integer age,@RequestParam("name") String title){
    System.out.println(age + ";" + title);
    return "index";
}

Spring MVC 对 RESTful 的支持
传统 URL:localhost:8080/hello?id=1&name=tom&age=22
RESTful URL:localhost:8080/hello/1/tom/22

@GetMapping("/rest/{id}/{name}/{age}")
public String rest(@PathVariable("id") Integer id,@PathVariable("name") String name,@PathVariable("age") Integer age){
    System.out.println(++id);
    System.out.println(name);
    System.out.println(++age);
    return null;
}

Spring MVC 绑定 JavaBean
@ResponseBody:将业务方法的返回值直接响应到客户端,不走视图解析器。

@GetMapping("/add")
@ResponseBody
public String add(Account account){
    return account.toString();
}
6.Spring MVC 自定义类型转换器

Spring MVC 默认可以完成一些类型转换,将 String 转为 Integer、Double(包装类),有些特殊的类型,Spring MVC 无法直接转换,String 转为 Date。
1、自定义数据类型转换器,告诉 Spring MVC 具体的转换逻辑。

public class DateConverter implements Converter {

    private String pattern = "yyyy-MM-dd";

    @Override
    public Date convert(String s) {
        SimpleDateFormat format = new SimpleDateFormat(this.pattern);
        try {
            return format.parse(s);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
}

2、springmvc.xml 配置自定义类型转换器。


    
        
            
        
    



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1028869.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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