java开发SSM框架具有rest风格的SpringMVC

目录
  • RESTful架构
    • 资源
    • 表现层(Representation)
    • 状态转化(State Transfer)
    • 简单小结
  • SpringMVC对RESTful架构的支持
  • 利用ajax实现前后端完全分离

RESTful架构

REST(Resource Representational State Transfer)即“资源表现层状态转化”,省略了Resource (资源)。允许客户端发出以统一资源标识符访问和操作网络资源的请求,而与预先定义好的无状态操作集一致化。

资源

指网络上的一个具体信息,可以是文本、图片、视频等,每种资源对应一个特定的URI,要想操作该资源访问它的URI就可以,因此URI就成了每一个资源的地址或独一无二的识别符。

表现层(Representation)

“资源"具体呈现出来的形式,叫做它的"表现层”(Representation),如,文本可以用txt格式表现,也可以用HTML格式、XML格式、JSON格式表现,甚至可以采用二进制格式;图片可以用JPG格式表现,也可以用PNG格式表现。URI只代表资源的实体,不代表它的形式。严格地说,有些网址最后的".html"后缀名是不必要的,因为这个后缀名表示格式,属于"表现层"范畴,而URI应该只代表"资源"的位置。它的具体表现形式,应该在HTTP请求的头信息中用Accept和Content-Type字段指定,这两个字段才是对"表现层"的描述

状态转化(State Transfer)

一次客户端和服务器的一个互动过程,会涉及到数据和状态的变化。互联网通信协议HTTP协议,是一个无状态协议,所有的状态都保存在服务器端。因此,客户端想要操作服务器,必须通过某种手段,让服务器端发生"状态转化"(State Transfer),这种转化是建立在表现层之上的,所以就是"表现层状态转化"。由于客户端用到的技术手段只能是HTTP协议,使用四个操作方式的动词:GET、POST、PUT、DELETE分别对应四种基本操作。GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源

简单小结

每一个URI代表一种资源;客户端和服务器之间,传递这种资源的某种表现层;客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。符合REST规范的软件架构就是restful编程风格。
在Restful风格中,用户请求的url使用同一个url而用请求方式:get,post,delete,put等方式对请求的处理方法进行区分,这样可以在前后台分离式的开发中使得前端开发人员不会对请求的资源地址产生混淆和大量的检查方法名的麻烦,形成一个统一的接口

SpringMVC对RESTful架构的支持

Spring MVC通过注解的方式将对资源的请求映射为一个URL,通过JSON等格式表示和传输资源;使用SpringMVC可以完成

  • 需要从URL中获取一些参数
  • 使得同一个接口的不同请求方法可以完成对应的操作

【示例】:设计一个对课程资源进行操作的RESTful接口

package com.kkb.controller;

import com.kkb.pojo.Course;
import com.kkb.service.CourseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
public class RESTCourseController {
    @Autowired
    CourseService service;

  	//获取全部课程
	@RequestMapping(value = "/course",method = RequestMethod.GET)
    public List<Course> getCourseList(){
        System.out.println("getCourseList");
        return service.selectCourses();
    }
    //根据id获取某个课程
    @RequestMapping(value = "/course/{id}",method = RequestMethod.GET)
    public Course getCourse(@PathVariable Integer id){
        System.out.println("getCourse");
        System.out.println("参数:"+id);
        return service.selectByID(id);
    }
	  //添加新的课程
    @RequestMapping(value = "/course",method = RequestMethod.POST)
    public String addCourse(@RequestBody Course course){
        System.out.println("addCourse");
        System.out.println("参数:"+course);
        service.insertCourse(course);
        return "{\"msg\":\"success\"}";
    }
		//根据id删除课程
    @RequestMapping(value = "/course/{id}",method = RequestMethod.DELETE)
    public String deleteCourse(@PathVariable Integer id){
        System.out.println("deleteCourse");
        System.out.println("参数:"+id);
        service.deleteCourse(id);
        return "{\"msg\":\"success\"}";
    }
    //根据id更新课程
    @RequestMapping(value = "/course",method = RequestMethod.PUT)
    public String updateCourse(@RequestBody Course course){
        System.out.println("updateCourse");
        System.out.println("参数:"+course);
        service.updateCourse(course);
        return "{\"msg\":\"success\"}";
    }
}

代码中使用@RestController做注解,相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面。

在前后端完全分离单页面项目中,路由跳转一般在前端进行,此时一般异步获取数据时使用(ajax或axios)获取,此时一般使用@RestController注解简单方便。

在RequestMapping,URL均使用http://。。。/course,但method不同分别实现增、删、改、查。

注意: 在web应用中,表单的提交只能使用post和get,put和delete是无法提交,在在web.xml中配置拦截器即可
示例代码来源于:https://www.jb51.net/article/128912.htm

利用ajax实现前后端完全分离

当前web开发流行的单页面系统使用前端路由,利用Ajax或AXOIS完成前端与后端的交互通讯,数据的传递格式一般使用json完成,具有rest编程风格的SpringMVC成为当前Java web开发主流技术。

以上就是java开发SSM框架具有rest风格的SpringMVC的详细内容,更多关于SpringMVC具有rest风格的SSM框架的资料请关注我们其它相关文章!

(0)

相关推荐

  • 一步步教你整合SSM框架(Spring MVC+Spring+MyBatis)详细教程

    前言 SSM(Spring+SpringMVC+Mybatis)是目前较为主流的企业级架构方案,不知道大家有没有留意,在我们看招聘信息的时候,经常会看到这一点,需要具备SSH框架的技能:而且在大部分教学课堂中,也会把SSH作为最核心的教学内容. 但是,我们在实际应用中发现,SpringMVC可以完全替代Struts,配合注解的方式,编程非常快捷,而且通过restful风格定义url,让地址看起来非常优雅. 另外,MyBatis也可以替换Hibernate,正因为MyBatis的半自动特点,我们程

  • SpringMVC 整合SSM框架详解

    整合SSM 环境要求 环境: IDEA MySQL5.7.19 Tomcat9 Maven3.6 要求: 需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单的前端知识: 数据库环境 创建一个存放书籍数据的数据库表 CREATE DATABASE `ssmbuild`; USE `ssmbuild`; DROP TABLE IF EXISTS `books`; CREATE TABLE `books` ( `bookID` INT(10) NOT NULL AUT

  • SpringMVC的REST风格的四种请求方式总结

    一. 在HTTP 协议里面,四个表示操作方式的动词:GET.POST.PUT.DELETE. 它们分别对应四种基本操作: 1.GET ====== 获 取资源 2.POST ======新建资源 3.PUT======= 更新资源 4.DELETE==== 删除资源 二.REST:即 Representational State Transfer.(资源)表现层状态转化.是目前最流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便, 所以正得到越来越多网站的采用. 我们可以通过re

  • springmvc Rest风格介绍及实现代码示例

    简介 REST 即 Representational State Transfer.(资源)表现层状态转化.是目前最流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以正得到越来越多网站的采用,POST, DELETE, PUT, GET 分别对应 CRUD.Spring3.0 开始支持 REST 风格的请求,是通过 org.springframework.web.filter.HiddenHttpMethodFilter 把 POST 请求转化为 PUT 和 DELETE

  • 详解Spring框架之基于Restful风格实现的SpringMVC

    如果说现在你要做一个系统,假设说有一个模块属于公告管理,那么我们可能安排路径的时候会这样安排NewsAction路径: 增加新闻:/pages/back/admin/news/add.action: 新闻列表:/pages/back/admin/news/list.action 随着技术的发展,有一种新型的架构设计思想:Restful风格,也就是说利用一个简单的路径,而后根据HTTP提交模式不同.那么可以完成不同的功能,也就是说: 看一个新闻内容:/news/1,GET: 删除新闻:/news/

  • java开发SSM框架具有rest风格的SpringMVC

    目录 RESTful架构 资源 表现层(Representation) 状态转化(State Transfer) 简单小结 SpringMVC对RESTful架构的支持 利用ajax实现前后端完全分离 RESTful架构 REST(Resource Representational State Transfer)即"资源表现层状态转化",省略了Resource (资源).允许客户端发出以统一资源标识符访问和操作网络资源的请求,而与预先定义好的无状态操作集一致化. 资源 指网络上的一个具

  • Java开发SSM框架微信支付的实现

    微信小程序的Java支付开发一直是一块坑,网上的教程也是琳琅满目.笔者六月的时候接触到了微信的小程序开发摸到了微信支付方面的东西,腾讯的官方文档也是一言难尽很多地方看不懂,而且官方也没有提供Java的示范导致Java做微信支付不得不自己踩坑.现在我把自己微信支付开发的步骤和代码都在下面展示出来,希望有没有做出来的朋友不要心急跟着我的步骤走就没问题. 第一步:首先微信支付的话只能是企业的开发账户才能使用的如果你是个人开发者是无法开通微信支付的.我们首先拿到账号,然后拿到微信支付相关的商户号和商户支

  • Java开发SSM框架微信退款的实现

    这篇文章是Java微信退款的教程,退款之前用户需要先进行支付,支付之后才可以使用退款.做到退款的同学应该已经是完成了支付了,我写的退款和支付的流程很相似只是所需的参数有所不同. String outTradeNo = request.getParameter("outTradeNo");// 获取商户订单号 Integer totalFee = Integer.parseInt(request.getParameter("totalFee"));// 获取支付金额

  • java整合SSM框架的图文教程

    使用Myeclipse搭建maven项目 准备工作 安装maven 官网下载安装(http://maven.apache.org/) 配置环境变量 配置完后,使用命令行输入mvn -version查看是否配置成功,出现以下界面表示配置成功. 2. 在MyEclipse中配置maven 打开MyEclipse2015----点击菜单栏Window---选项栏Preference ,搜索Maven,进入Installations,点击Add引入安装的maven. 进入User Setting,设置G

  • Java中SSM框架实现增删改查功能代码详解

    记录一下自己第一次整合smm框架的步骤. 参考博客和网站有:我没有三颗心脏 How2J学习网站 1.数据库使用的是mySql,首先创建数据库ssm1,并创建表student create database ssm1; use ssm1; CREATE TABLE student( id int(11) NOT NULL AUTO_INCREMENT, student_id int(11) NOT NULL UNIQUE, name varchar(255) NOT NULL, age int(1

  • 使用IDEA搭建SSM框架的详细教程(spring + springMVC +MyBatis)

    1 框架组成 Spring SpringMVC MyBatis 2 所需工具 Mysql 8.0.15 ​数据库管理系统,创建数据库 Tomcat 8.5.51 ​用于部署web项目 Maven 3.6.1 ​项目构建.项目依赖管理 lombok 1.18.10(可用可不用工具) ​用于类注解创建setter.getter.无参构造.全参构造.toString等函数 ​注:只导入依赖,不安装插件是不起作用的 3 搭建步骤 3.1 新建一个空Maven项目,填写项目相关信息,完成 3.2 添加we

  • JAVA中SSM框架的搭建实现CRUD的方法

    最近在开发公司的一个系统,系统的框架是用ssm的框架搭建的,当然和这次写博客的不一样,它拥有很多的配置文件,企业级的开发所需要的配置文件是非常繁琐的,今天记录一下一个简单的SSM框架的搭建和实现一个CRUD的操作. 使用的是Maven插件来配置我们需要的jar包,由于操作不多,所以并没有配置很多,要注意自己使用的jdk的版本,选择不同版本号的jdk <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="

  • Java后端SSM框架图片上传功能实现方法解析

    一.技术概述 (1)这个技术是做什么 这个技术是上传图片到服务器上,并且把地址存在数据库中.前端调用的时候之间通过地址即可调用. (2)学习该技术的原因 由于用户在写日记的时候也可以进行图片的上传,同时还有用户头像的上传. 二.技术详述 以上传用户的头像为例 (1)接口代码 @RequestMapping(value = "user/profilePhoto", produces = "application/json; charset=utf-8") @Respo

  • 基于Java SSM框架开发图书借阅系统源代码

    一.技术框架与开发环境 开发环境: IDE:IDEA 2020 数据库:MySQL 8.0 JDK 1.8 Maven 3.6.1 Tomcat 9 lombok 1.18.1 技术框架: 核心框架:Spring 5.1.9 持久层框架:Mybatis 3.5.2 视图层框架:SpringMVC 5.1.9 前端框架:Bootstrap 4 jquery-3.6.0 二.项目源码 有用就点赞博客 Github 国内:Giee 项目结构 三.功能介绍 1.登录 2.注册 AJAX异步刷新显示判断账

  • Java开发之手把手教你搭建企业级工程SSM框架

    目录 1.在IDEA界面中创建MavenWeb工程 2.在pom.xml中添加如下相关依赖 3.web.xml 配置 Spring MVC.Spring 4.分别在main目录下创建resource包 5.在spring.xml中连接数据库 6.springmvc.xml中配置驱动和前后缀表达式 7.配置打印sql语句和指定实体类,让idea搜索需要的javaBean 8.创建与数据库相对应的实体类 9.Handler 10.Service及其接口 11.Repository 12.测试所用的j

随机推荐