SpringBootRestFul快速入门

简介: SpringBootRestFul快速入门

SpringBootRestFul

1.什么是 RESTFul

RESTful 是一种软件架构风格、设计风格,而不是标准。 只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风 格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 当前阶段可以理解为 使用请求方式(POST,GET,PUT,DELETE)来定位方法的一种请求路径写法.

CustomerController.java

添加

/**
     * ajax操作:保存客户信息
     * @param customer
     */
    @PostMapping("/saveCustomer")
    public ResponseEntity saveCustomer(Customer customer){
        //1、获取表单信息(参数)
        //2、调用service保存信息
        try {
            customerServiceImpl.saveCustomer(customer);
        } catch (Exception e) {
            //保存失败
//            return new Msg(e.getMessage(),false);
//            return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);//只能抛出500状态码
            return ResponseEntity.ok(new Msg(e.getMessage(),false));
        }
        //保存成功
        //3、获取service结果,写出响应体
        return ResponseEntity.ok(new Msg("保存成功",true));
    }

修改

/**
     * ajax修改客户信息
     * @return
     */
    @PutMapping("/modifyCustomer")
    public ResponseEntity modifyCustomer(Customer customer){
        //1、调用service进行修改
        try {
            customerServiceImpl.modifyCustomer(customer);
            //2、根据service处理结果,将结果写出响应体
        } catch (Exception e) {
            //若出现异常,修改失败,将异常信息写出响应体即可
            return ResponseEntity.ok(new Msg(e.getMessage(),false));
        }
        //若未出异常,修改成功
        return ResponseEntity.ok(new Msg("修改成功",true));
    }

删除

/**
     * ajax删除客户信息
     * @return
     */
    @DeleteMapping("/deleteCustomerByCustId/{cust_id}")
    public ResponseEntity deleteCustomerByCustId(@PathVariable("cust_id")Long cust_id){
        //1、调用service进行删除
        //2、根据删除结果,进行响应体写出
        try {
            customerServiceImpl.deleteCustomerByCustId(cust_id);
        } catch (Exception e) {
            return ResponseEntity.ok(new Msg(e.getMessage(),false));
        }
        return ResponseEntity.ok(new Msg("删除成功",true));
    }

add.jsp

//1、页面加载完成时,为保存按钮绑定点击事件
      $("#saveBtn").click(function () {
        //2、点击事件中,发送ajax请求到控制器,提交整个表单数据
        $.ajax({
          type:"post",
          url:"${pageContext.request.contextPath}/customer/saveCustomer",
          data:$("#f1").serialize(),
          contentType:"application/x-www-form-urlencoded",
          dataType:"json",
          statusCode:{
            200:function (data) {
              alert(data.msg);
            },
            500:function () {
              alert("服务器异常,请联系管理员!");
            }
          }
        });
      });

edit.jsp

//2、页面加载完成时,为修改按钮绑定点击事件,点击按钮,ajax方式提交表单
      $("#modifyBtn").click(function () {
        $.ajax({
          type:"put",
          url:"${pageContext.request.contextPath}/customer/modifyCustomer",
          data:$("#f1").serialize(),
          contentType:"application/x-www-form-urlencoded",
          dataType:"json",
          statusCode:{
            200:function (data) {
              //1、判断修改结果成功与否
              //2、根据修改结果,进行分别处理
              alert(data.msg);
              if(data.flag){
                //修改成功,跳转到 查询所有的功能
                location.href="${pageContext.request.contextPath}/customer/clist";
              }
            },
            500:function () {
              alert("服务器异常,请联系管理员!");
            }
          }
        });
      });

list.jsp

//删除某个客户信息
  function deleteCustomerByCustId(cust_id) {
    //加入是否删除判断
    if(confirm("是否删除该客户信息?")){
      //通过ajax,向控制器发送请求,请求删除该客户信息
      $.ajax({
        type:"delete",
        url:"${pageContext.request.contextPath}/customer/deleteCustomerByCustId/"+cust_id,
        dataType:"json",
        statusCode:{
          200:function (data) {
            //1、展示字符串结果
            alert(data.msg);
            //2、若删除成功,刷新整体页面
            if(data.flag){
              location.href="${pageContext.request.contextPath}/customer/clist";
            }
          },
          500:function () {
            alert("服务器异常,请联系管理员!");
          }
        }
      });
    }
  }


目录
相关文章
|
存储 并行计算 前端开发
【C++ 函数 基础教程 第五篇】C++深度解析:函数包裹与异步计算的艺术(二)
【C++ 函数 基础教程 第五篇】C++深度解析:函数包裹与异步计算的艺术
167 1
|
11月前
|
人工智能 运维 自然语言处理
OS Copilot深度体验:大模型赋能下的操作系统智能助手
作为一名运维工程师,我体验了阿里云推出的OS Copilot,这款操作系统智能助手结合大语言模型与专业知识,提供自然语言问答、辅助命令执行和系统运维调优等功能。通过简单的命令行接口,用户可在主流Linux系统中快速启动这些功能,大幅提升效率,尤其适合复杂任务处理。安装简便,支持批量操作,大幅减少重复劳动。建议尝试,探索AI在系统管理中的潜力。
308 25
OS Copilot深度体验:大模型赋能下的操作系统智能助手
|
关系型数据库 MySQL 应用服务中间件
测评部署和管理 WordPress 最方便的面板
本文介绍了如何使用Websoft9面板轻松搭建WordPress网站,相比宝塔和1Panel,Websoft9简化了Nginx和MySQL的配置步骤,实现了快速一键部署。用户只需在应用商店中搜索WordPress,选择版本和端口后等待几分钟即可完成安装,随后通过提供的链接进入WordPress界面,轻松启动个人网站。
|
运维 负载均衡 Linux
阿里云轻量服务器最新收费标准与价格参考
阿里云轻量服务器具有灵活的镜像选择、快速上手、简便运维等优势,轻量服务器适合个人开发者和学生用来搭建网站、云端学习等场景使用,2024年截至目前国内地域有60元/月、80元/月等套餐可选,国外地域有24元/月、34元/月、67元/月等套餐可选,目前轻量应用服务器2核2G3M带宽82元1年、2核4G4M带宽298元1年。
|
存储 人工智能 缓存
langchain 入门指南 - 让 AI 记住你说过的话
langchain 入门指南 - 让 AI 记住你说过的话
485 1
|
存储 安全 Java
Spring Boot中的文件下载实现
Spring Boot中的文件下载实现
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的鲜牛奶订购管理系统
基于Python+Vue开发的鲜牛奶订购管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的牛奶订购管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
80 0
java反射-获取类的Class对象方式
java反射-获取类的Class对象方式
128 0
|
存储 前端开发 Java
基于SpringBoot实现文件上传和下载(详细讲解And附完整代码)
基于SpringBoot实现文件上传和下载(详细讲解And附完整代码)
|
前端开发 Java 数据格式
Spring Boot实现文件上传
Spring Boot实现文件上传
902 0