广告
返回顶部
首页 > 资讯 > 精选 >怎么用Spring MVC实现RESTful风格
  • 312
分享到

怎么用Spring MVC实现RESTful风格

2023-06-29 06:06:21 312人浏览 八月长安
摘要

本篇内容主要讲解“怎么用spring mvc实现RESTful风格”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Spring MVC实现RESTful风格”吧!spri

本篇内容主要讲解“怎么用spring mvc实现RESTful风格”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Spring MVC实现RESTful风格”吧!

springMVC实现RESTful风格

RESTful

中文释义为”表现层状态转换“,它不是一种标准,而是一种设计风格。

它的主要作用是充分并正确利用Http协议的特性,规范资源获取的URI路径。

通俗的讲,RESTful风格的设计允许将参数通过URL拼接传到服务端,目的是让URL看起来更简洁实用。

并且对于不同的操作,要指定不同的HTTP方法(POST/GET/PUT/DELETE)。可以这么说,只要是具有上述相关条件和原则的应用程序或设计就可以被称为RESTful风格的应用。

一个满足RESTful的程序或设计应满足以下条件和约束:

第一:对请求的URL进行规范,在URL中不会出现动词,而是使用HTTP协议的动词

第二:充分利用HTTP方法,HTTP方法名包括:GET、POST、PUT、PATCH、DELETE

使用Spring MVC实现RESTful风格

Spring mvc可以使用@RequestMapping的路径设置,结合@PathVariable的参数指定,来实现RESTful风格的请求。

样例要实现,通过拼接水果商品的id来实现一个RESTful风格的请求,并向后台发送该请求,以此来获取JSON格式的水果数据

@RequestMapping(value="/queryFruit/{id}",method={RequestMethod.GET})public @ResponseBody Fruits getFruitById(Model model,@PathVariable("id") Integer fruitId) throws Exception{    Fruits fruit = fruitsServices.queryFruitById(fruitId);    return fruit; }

在该方法中,在@RequestMapping注解的请求路径中添加了一个动态数据"{id}",它的作用是解析前台的请求路径,将动态数据所在的位置解析为名为id的请求参数。

@PathVariable注解,在其中指定请求参数的key名称,并映射在后面定义的形参上,这里定义fruitId形参来接收名为id的请求参数,最后使用@ResponseBody注解加上之前配置的类型转换器,返回客户端jsON类型的水果详细信息,总的来说,利用SprngMVC实现RESTful风格主要就是在于请求路径和请求参数的映射,以及RequestMapping的指定,更改WEB.xml中配置文件的内容,将*.do改成"/",这样编写的RESTful风格的请求才能被前端控制器拦截到并解析。

<servlet-mapping>    <servlet-name>springmvc</servlet-name>    <url-pattern>/</url-pattern></servlet-mapping>

然后重启工程,输入网址:http://localhost:8080/工程名/queryFruit/1

怎么用Spring MVC实现RESTful风格

上面的代码为查询类型的请求代码,而新增、修改以及删除的请求与此类似,区别就是需要指定不同的RequestMethod(POST/PUT/DELETE),样例代码如下:

        //添加水果逻辑@RequestMapping(value="/addFruit",method= {RequestMethod.POST})public String addFruit(Model model,Fruits fruit)throws Exception{//implementsreturn "...";}//通过id删除水果商品@RequestMapping(value="/deleteFruit/{id}",method= {RequestMethod.DELETE})public String deleteFruitById(Model model,@PathVariable Integer fruitId)throws Exception{//implementsreturn "...";}//修改水果商品信息@RequestMapping(value="/editFruit",method= {RequestMethod.PUT})public String editFruitById(Model model,Fruits fruit)throws Exception{//implementsreturn "...";}

前端在访问RESTful风格的增、删、该请求时,需要配置HTTP请求的方法(method参数)。如果是在JSP页面上使用fORM表单的提交方式来请求RESTful风格的服务,需要根据请求的类型,在form表单标签中指定HTTP请求的相关method参数。

静态资源访问问题

前面在web.xml中配置了符合RESTful风格的DispatcherServlet前端控制器过滤器。但是这种过滤方式会造成静态资源无法访问的问题,例如:在webContent下的image文件夹下放置一张图片loGo.jpg。

由于图片放置在WEB-INF文件外(由于javaweb的保护机制,WEB-INF文件夹下的文件不可直接访问),所以原则上是可以通过直接访问静态资源的方式获取该图片的,但是输入http://localhost:8080/工程名/image/logo.jpg的请求后,不能获取到图片资源。

原因:

在web.xml中配置了前端控制器的请求过滤机制,为了接收RESTful风格的请求,将过滤的后缀去除了,变成过滤所有后缀的请求路径,此时静态资源会被当做一个业务请求被前端控制器处理,前端控制器没有发现能够处理该请求的Controller控制器方法,所以对外抛出了404错误。

解决方式一:

在类加载配置文件springmvc中使用"mvc:resources"配置静态资源的解析路径,将需要加载的静态资源的URI路径配置在标签中,然后配置该URI映射的真是资源路径。

<mvc:resources location="/js/" mapping="/js/**"/><mvc:resources location="/img/" mapping="/img/**"/><mvc:resources location="/CSS/" mapping="/css/**"/>

当在springmvc.xml中配置了静态资源文件的解析路径后,前端控制器就会根据请求URL中的具体子路径来映射出静态资源的真是路径,然后为前端反馈真实的静态资源信息。

解决方式二:

在springmvc.xml中使用"<mvc:default-servlet-handler/>"配置默认的Servlet处理器,该配置将在SpringMVC上下文中定义一个DefaultServletHttpRequestHandler,他会对进入DispatcherServlet的请求进行筛选,若发现没有经过映射的请求,就将该请求交由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet前端控制器继续处理,此时就可以将请求中的静态资源和其他业务请求分开处理,从而正常地返回静态资源信息。

Spring MVC的RESTful学习

什么RESTful

RESTful也称为REST(Representational State Transfer),可以将它理解为一种软件架构风格或设计风格

RESTful风格就是把请求参数编程请求路径的一种风格。

例如,传统的URL请求如下:

http://.../requestparam?id=1

而采用RESTful风格后,URL请求变为:

http://.../param/1

RESTful风格在HTTP请求中使用put,delete,post和get方式分别对应添加,删除,修改和查询的操作。不过国内开发目前只使用post和get方式实现增删改查操作。

使用简单的加法计算

@Controllerpublic class RestFulController {    //原来的:localhost:8080/add?a=1&b=1    //RestFul:   localhost:8080/add/a/b    @RequestMapping(value = "/add/{a}/{b}",method = RequestMethod.GET)    public String test(@PathVariable int a,@PathVariable int b, Model model) {        int res = a + b;        model.addAttribute("msg","结果为:"+res);        return "test";    }}
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>    <title>Title</title></head><body>${msg}</body></html>

怎么用Spring MVC实现RESTful风格

到此,相信大家对“怎么用Spring MVC实现RESTful风格”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 怎么用Spring MVC实现RESTful风格

本文链接: https://www.lsjlt.com/news/323146.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么用Spring MVC实现RESTful风格
    本篇内容主要讲解“怎么用Spring MVC实现RESTful风格”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Spring MVC实现RESTful风格”吧!Spri...
    99+
    2023-06-29
  • 如何利用Spring MVC实现RESTful风格
    目录SpringMVC实现RESTful风格RESTful使用Spring MVC实现RESTful风格静态资源访问问题Spring MVC的RESTful学习什么RESTful使用...
    99+
    2022-11-13
  • vue怎么结合axios实现restful风格
    本篇内容主要讲解“vue怎么结合axios实现restful风格”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue怎么结合axios实现restful风格”吧!Axios 是一个基于 prom...
    99+
    2023-07-02
  • 详解用Node.js实现Restful风格webservice
    Restful风格的WebService正在渐渐取代传统的SOAP, Java 也有很多Restful的框架,很方便简洁,Jersey,restlet,甚至SpringMVC也可以,不得不说Rest让人从W...
    99+
    2022-06-04
    详解 风格 Node
  • 详解Spring框架之基于Restful风格实现的SpringMVC
    如果说现在你要做一个系统,假设说有一个模块属于公告管理,那么我们可能安排路径的时候会这样安排NewsAction路径: 增加新闻:/pages/back/admin/news/add.action; 新闻列表:/page...
    99+
    2023-05-31
    spring restful st
  • SpringMVC实现RESTful风格:@PathVariable注解的使用方式
    目录1、RESTful简介2、SpringMVC实现RESTful风格2.1 @PathVariable注解2.2 修改SpringMVC的前端控制器配置3、静态资源访问问题3.1 ...
    99+
    2022-11-12
  • spring中REST和RESTful怎么实现
    今天小编给大家分享一下spring中REST和RESTful怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。简介RES...
    99+
    2023-06-29
  • 利用Spring MVC怎么实现国际化
    这期内容当中小编将会给大家带来有关利用Spring MVC怎么实现国际化,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Spring MVC的国际化是建立在Java国际化的基础上的,其一样是通过提供不同国家...
    99+
    2023-05-31
    springmvc
  • 使用Spring MVC怎么实现文件上传和下载
    这期内容当中小编将会给大家带来有关使用Spring MVC怎么实现文件上传和下载,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。文件上传导入主要依赖<!--文件上传--><dependen...
    99+
    2023-06-14
  • 在Kotlin中使用Spring Boot怎么实现一个RESTful服务
    今天就跟大家聊聊有关在Kotlin中使用Spring Boot怎么实现一个RESTful服务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Spring太复杂了,配置这个东西简直就是浪...
    99+
    2023-05-31
    kotlin spring boot restful
  • 利用Spring MVC怎么实现一个文件上传功能
    本篇文章给大家分享的是有关利用Spring MVC怎么实现一个文件上传功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。使用Spring MVC 上传文件必须配置文件解析器,如...
    99+
    2023-05-31
    springmvc 一个文件
  • 拦截器在Spring MVC中怎么实现自定义
    拦截器在Spring MVC中怎么实现自定义?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1. 引言拦截器(Interceptor)实现对每一个请求处理前后进行...
    99+
    2023-05-31
    spring mvc
  • 怎么用div+css实现vista风格导航菜单效果
    这篇文章主要介绍“怎么用div+css实现vista风格导航菜单效果”,在日常操作中,相信很多人在怎么用div+css实现vista风格导航菜单效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方...
    99+
    2022-10-19
  • 怎么使用Spring MVC拦截器实现一个登录功能
    怎么使用Spring MVC拦截器实现一个登录功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。HandlerInterceptor接口Spring MVC中的Intercep...
    99+
    2023-05-31
    springmvc
  • 怎么用纯CSS实现飞机舷窗风格的toggle控件
    这篇文章主要介绍了怎么用纯CSS实现飞机舷窗风格的toggle控件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。    ...
    99+
    2022-10-19
  • 怎么用纯CSS3实现自定义Tooltip边框涂鸦风格
    这篇文章主要介绍“怎么用纯CSS3实现自定义Tooltip边框涂鸦风格”,在日常操作中,相信很多人在怎么用纯CSS3实现自定义Tooltip边框涂鸦风格问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操...
    99+
    2022-10-19
  • Spring MVC怎么实现GET请求接收Date类型参数
    这篇“Spring MVC怎么实现GET请求接收Date类型参数”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Sp...
    99+
    2023-07-02
  • Spring MVC图片的上传和下载功能怎么实现
    这篇文章主要介绍了Spring MVC图片的上传和下载功能怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Spring MVC图片的上传和下载功能怎么实现文章都会有所收获,下面我们一起...
    99+
    2023-07-05
  • Spring MVC启动之HandlerMapping作用及实现方法是什么
    这篇“Spring MVC启动之HandlerMapping作用及实现方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起...
    99+
    2023-07-05
  • Spring Cloud OAuth2怎么实现自定义token返回格式
    这篇“Spring Cloud OAuth2怎么实现自定义token返回格式”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作