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框架的资料请关注我们其它相关文章!

时间: 2021-10-12

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

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

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

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

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

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

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

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

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

spring mvc 组合mybatis框架实例详解

说明 本项目采用 maven 结构,主要演示了 spring mvc + mybatis,controller 获取数据后以json 格式返回数据. 项目结构 包依赖 与说明 pom文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://

java整合SSM框架的图文教程

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

使用idea搭建一个spring mvc项目的图文教程

最近在学习spring的相关知识,顺便记下笔记,与大家共享. spring运行流程如下图所示: [流程] user发送request,DispatcherServlet(等同于Controller控制器),控制器接收到请求,来到HandlerMapping(在配置文件中配置),HandlerMapping会对URL进行解析,并判断当前URL该交给哪个controller来处理,找到对应的controller之后,controller就跟server.Javabean进行交互,得到某一个值,并返回

spring boot集成shiro详细教程(小结)

我们开发时候有时候要把传统spring shiro转成spring boot项目,或者直接集成,name我们要搞清楚一个知识,就是 xml配置和spring bean代码配置的关系,这一点很重要,因为spring boot是没有xml配置文件的(也不绝对,spring boot也是可以引用xml配置的) 引入依赖: <dependency> <artifactId>ehcache-core</artifactId> <groupId>net.sf.ehcac

IDEA连接远程服务器Docker部署Spring Boot项目的详细教程

开始前的准备工作 拥有一台云服务器,我的是腾讯云服务器(CentOS7) 腾讯云服务器安装Docker,我的版本是Docker 19.03.9,关于安装和配置镜像加速器可以查阅我的另一篇博文:https://www.jb51.net/article/188048.htm,其中有详细的讲解 Windows上有安装IDEA 正式开始工作 第一步:配置Docker,开启远程访问(注:仅供学习参考,实际生产环境万万不可,会产生很大的安全风险),默认端口是2375,也可以修改为其他端口 1.修改/lib/

Java SSM框架如何配置静态资源加载

Java SSM框架即指Spring+SpringMVC+MyBatis的简称,框架集由Spring.MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容),常作为数据源较简单的web项目的框架. 相比于之前的SSH(Spring+Struts+Hibernate),SSM更加轻量化和灵活,是目前业界主流的Java Web开发框架. 第一种:SSM框架中在springmvc-servlet.xml中配置加载静态资源 只需要在springmvc-servlet.xml配

基于SSM框架+Javamail发送邮件的代码实例

本篇介绍基于SSM框架(Spring4.0+SpringMVC+Mybatis)组合的Javamail应用,邮箱的话基于腾讯的QQ邮箱,其实也是Foxmail邮箱 先要了解一下SMTP协议和SSL加密 SMTP:称为简单邮件传输协议(Simple Mail Transfer Protocal),目标是向用户提供高效.可靠的邮件传输.SMTP是一种请求响应的协议,也就是客户机向远程服务器发送请求,服务器响应,监听端口是25,所以其工作模式有两种:发送SMTP,接收SMTP. SSL加密:用来保障浏

基于Spring MVC 简介及入门小例子(推荐)

一.什么是 Spring MVC Spring MVC 属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里面,是一个强大灵活的 Web 框架.Spring MVC 提供了一个 DispatcherServlet 作为前端控制器来分配请求.通过策略接口,Spring 框架是高度可配置的.Spring MVC 还包含多种视图技术,如 Java Server Pages(JSP).Velocity.Tiles.iText 和 POI 等.Spring MV

14个编写Spring MVC控制器的实用小技巧(吐血整理)

本文介绍了编写Spring MVC框架的控制器(controller)的基础技巧和最佳操作.在Spring MVC框架中,编写控制器类通常是为了处理用户提出的请求. 编写完成后,控制器会调用一个业务类来处理业务相关任务,进而重定向客户到逻辑视图名.Springdispatcher servlet会对逻辑视图名进行解析,并渲染结果或输出.这就是一个典型的"请求-响应"的完整流程. 1.使用@controllerstereotype 创建一个能够处理单个或多个请求的控制器类,最简单的方法就