SpringMVC框架详解

1.MVC概念

MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。

Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO,工程中的JavaBean。

View(视图) - 视图代表模型包含的数据的可视化。

Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。

2.SpringMVC 

2.1 相关概念

1.Spring MVC是Spring Framework提供的Web组件,全称是Spring Web MVC,是目前主流的实现MVC设计模式的框架,提供前端路由映射、视图解析等功能。

2.SpringMVC是一种基于MVC设计模式的Java Web框架,其主要目的是为了简化Web应用程序的开发过程。它提供了一组组件,如控制器、视图解析器、拦截器等,使得开发人员可以更加轻松地组织和管理Web应用程序的代码。其核心思想是将请求和响应分离,使得开发人员可以将业务逻辑和展示逻辑分离开来,从而提高代码的可维护性和可重用性。

2.2 BS架构

       BS架构是指Browser/Server架构,也就是浏览器/服务器架构。它是一种网络架构模式,将应用程序分为客户端和服务器端两个部分。客户端指的是用户使用的浏览器,而服务器端则是应用程序的后台处理部分。在BS架构中,客户端负责展示用户界面和处理用户输入,服务器端负责处理客户端请求并返回相应的数据。这种架构的优点是客户端无需安装任何软件,只需要一个浏览器即可访问应用程序,同时服务器端可以集中管理和维护应用程序,提高了安全性和可靠性。

2.3 创建SpringMVC项目

1.使用IDEA创建SpringMVC项目

2.实现连接

注意:在Spring框架中,@RequestMapping注解默认的请求方式为GET。也就是说,如果没有指定请求方式,那么该方法将只处理GET请求。但是,@RequestMapping注解可以指定多种请求方式,例如:@RequestMapping(value="/test", method={RequestMethod.GET, RequestMethod.POST}),表示该方法可以处理GET和POST请求。

注意:浏览器默认发送GET请求

三种方法实现连接:

@RestController
public class UserController {
    @RequestMapping(value = "/sayhi",method = RequestMethod.POST) 
    //可以为一级路由,也可以为多级路由
    //支持get和post请求方法
    public String syahi(){
        return "hi spring mvc";
    }
    @PostMapping("/sayhello")//只支持post请求方法
     public String sayHello(){
    return "hi spring sayHello";
     @GetMapping("/sayhi") //只支持get请求方法
    public String say(){
        return "hi get hello";
    }
}
}

使用postman模拟POST请求; 

 

 3.获取方法

3.1 获取单个的参数

@RequestMapping(value = "/sayhi") //可以为一级路由,也可以为多级路由
public String syahi(String name){
    return "hi "+name;
}

 参数传递,不要使用基础类型,因为基础类型会报错。

 使用包装类型传参不会出现错误:

 2.获取多个参数

3. 获取对象:

框架会实现自动的参数映射

@RequestMapping("/reg")
public Object reg(Userinfo userinfo){
    System.out.println(userinfo);
    return userinfo;
}

 

 重命名前端的传递参数名称:前端传递username
前端传递一般为对象或者json格式的字符串对象
后端获取的时候:对象/json对象格式的字符串对象

 重命名功能:

//重命名功能
@RequestMapping("/reg2")
public Object reg(@RequestParam("username",required = false) String name,String password){
    return name+":"+password;
}

 4.获取JSON对象

加上@RequestBody注解

@RequestMapping("/reg3")
public Object reg3(@RequestBody Userinfo userinfo){
    return userinfo;
}

5.从基础URL中获取参数(不是从URL的参数部分获取参数)
path(url) = /user/123456
优点1:搜索引擎抓取关键字权重更高
优点2:url更简洁

/**
 * 获取URL参数
 * @param name
 * @param password
 * @return
 */
@RequestMapping("/reg4/{name}/{password}")
public Object reg4(@PathVariable String name,@PathVariable String password){
    return "name->"+name+" | password->"+password;
}

重命名:

/**
 * 获取URL参数
 * @param name
 * @param password
 * @return
 */
@RequestMapping("/reg4/{name}/{password}")
public Object reg4(@PathVariable String name,@PathVariable(required=false,
name="pwd") String password){
    return "name->"+name+" | password->"+password;
}

@PathVariable ->基础URL里面的参数(? 之前的参数)
@RequestParm ->URL参数部分的参数( ? 之后的参数)

6.获取上传文件@RequestPart

 

/**
 * 获取上传文件
 * @param file
 * @return
 */
@RequestMapping("/myupload")
public Object upload(@RequestPart("myimg")MultipartFile file) {
    File saveFile = new File("D:\\桌面\\CsdnImg\\myimg.png");
    try {
        file.transferTo(saveFile);
        return true;
    } catch (IOException e) {
        e.printStackTrace();
    }
    return false;
}

 Postman构建:

注意:文件上传的大小默认限制为1MB;重新设置上传大小限制:

srping.servlet.multipart.max-file-size=100MB
srping.servlet.multipart.max-request-size=100MB

 文件上传不重复:

  /**
     * 获取上传文件
     * @param file
     * @return
     */
    @RequestMapping("/myupload")
    public Object upload(@RequestPart("myimg")MultipartFile file) {
        String fileName = UUID.randomUUID()+
                file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
        File saveFile = new File("D:\\桌面\\CsdnImg\\"+fileName);
        try {
            file.transferTo(saveFile);
            return true;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return false;
    }

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Spring MVC是基于Spring框架MVC(Model-View-Controller)模式的Web开发框架。它提供了一种灵活、可扩展的方式来构建Web应用程序。下面是对Spring MVC的深入详解: 1. 请求处理流程:当客户端发送请求时,请求会被DispatcherServlet接收并进行处理。DispatcherServlet会根据请求的URL找到对应的处理器(Controller),并调用相应的方法进行处理。处理器可能会调用服务层(Service)进行业务逻辑处理,并将结果封装为Model对象。然后,处理器会选择合适的视图(View)进行渲染,并将Model对象传递给视图进行展示。最终,视图生成响应内容返回给客户端。 2. 控制器(Controller):控制器负责接收和处理客户端的请求。在Spring MVC中,控制器可以使用注解(如@Controller)或实现特定接口(如Controller接口)来定义。控制器方法可以通过方法参数获取请求参数、路径变量等信息,并通过方法返回值来指定响应结果。控制器方法可以返回逻辑视图名、ModelAndView对象、JSON数据等。 3. 视图解析:Spring MVC使用视图解析器来解析控制器方法返回的逻辑视图名,并将其转换为具体的视图对象。视图解析器可以根据视图名的前缀和后缀,自动匹配合适的视图实现。常见的视图实现包括JSP、Thymeleaf、Freemarker等。 4. 数据绑定:Spring MVC支持数据绑定,可以将请求参数绑定到控制器方法的参数、表单对象、模型对象等上。数据绑定可以通过注解(如@ModelAttribute、@RequestParam)或自动推断来进行。Spring MVC还支持数据格式转换和验证,可以自动将请求参数转换为指定类型,并对数据进行验证。 5. 拦截器(Interceptor):拦截器是Spring MVC提供的一种机制,用于对请求进行预处理和后处理。拦截器可以在请求进入控制器之前、视图渲染之前或请求完成之后执行特定的操作。例如,可以使用拦截器进行身份认证、日志记录等处理。 6. 异常处理:Spring MVC提供了异常处理机制,可以捕获控制器方法抛出的异常,并根据配置进行处理。可以通过注解(如@ExceptionHandler)或配置全局异常处理器(HandlerExceptionResolver)来定义异常处理逻辑。 7. 文件上传:Spring MVC提供了文件上传的支持。可以使用@RequestParam注解将文件上传到控制器方法的参数中,并通过MultipartFile对象获取文件内容、文件名等信息。 总而言之,Spring MVC是一个功能强大、灵活可扩展的Web开发框架。它通过MVC模式、请求处理流程、控制器、视图解析、数据绑定、拦截器、异常处理等特性,帮助开发人员构建高效、可维护的Web应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值