首页 > 其他分享 >【SpringMVC整合MyBatis】springmvc对RESTful支持

【SpringMVC整合MyBatis】springmvc对RESTful支持

时间:2023-03-19 10:31:36浏览次数:30  
标签:http SpringMVC REST springmvc json url itemsView MyBatis id


1.什么是RESTful
RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。

RESTful-表现层状态转换(即Representational State Transfer的缩写)其实是一个开发理念,是对http的很好的诠释。

(1)对url进行规范,写RESTful格式的url

非REST的url:http://...../queryItems.action?id=001&type=T01
REST的url风格:http://..../items/001
特点:url简洁,将参数通过url传到服务端
(2)http的方法规范
不管是删除、添加、更新。。使用url是一致的,如果进行删除,需要设置http的方法为delete,同理添加。。。

后台controller方法:判断http方法,如果是delete执行删除,如果是post执行添加。

(3)对http的contentType规范
请求时指定contentType,要json数据,设置成json格式的type。。

2.REST的例子
2.1需求
查询商品信息,返回json数据。

2.2controller
定义方法,进行url映射使用REST风格的url,将查询商品信息的id传入controller .
输出json使用@ResponseBody将java对象输出json。

//查询商品信息,输出json
///itemsView/{id}里面的{id}表示将这个位置的参数传到@PathVariable指定名称中
@RequestMapping("/itemsView/{id}")
public @ResponseBody ItemsCustom itemsView(@PathVariable("id") Integer id)throws Exception{
//调用service查询商品信息
ItemsCustom itemsCustom=itemsService.findItemsById(id);

return itemsCustom;
}


@RequestMapping(value="/ itemsView/{id}"):{xxx}占位符,请求的URL可以是“/viewItems/1”或“/viewItems/2”,通过在方法中使用@PathVariable获取{xxx}中的xxx变量。


@PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上。


如果RequestMapping中表示为"/ itemsView /{id}",id和形参名称一致,@PathVariable不用指定名称。



2.3REST方法的前端控制器配置


在web.xml配置:


<!-- SpringMvc前端控制器,rest配置 -->
<servlet>
<servlet-name>springmvc_rest</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/springmvc.xml</param-value>
</init-param>
</servlet>

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


浏览器输入:http://localhost:8080/springmvc_mybatis1507/items/itemsView/1进行测试,测试结果:


【SpringMVC整合MyBatis】springmvc对RESTful支持_spring


REST的url风格配置成功!



3.对静态资源的解析



配置前端控制器的url-parttern中指定/,对静态资源的解析出现问题:


【SpringMVC整合MyBatis】springmvc对RESTful支持_spring mvc_02



在springmvc.xml中添加静态资源解析方法。


<!-- 静态资源的解析
包括:js/css/img... -->
<mvc:resources location="/js/" mapping="/js/**"/>
<mvc:resources location="/img/" mapping="/img/**"/>
<mvc:resources location="/css/" mapping="/css/**"/>


再次测试:

【SpringMVC整合MyBatis】springmvc对RESTful支持_spring_03

解决了静态资源不能访问的问题


标签:http,SpringMVC,REST,springmvc,json,url,itemsView,MyBatis,id
From: https://blog.51cto.com/u_16012040/6130935

相关文章

  • Spring Study-lesson13-整合Mybatis-2-2023-3-19
    进一步优化将UserMapperImpl进行优化,继承系统提供的一个父类:extendsSqlSessionDaoSupport  新建一个:UserMapperImpl2类 继承父类,实现UserMapper接口。简化成一行......
  • Spring Study-lesson13-整合Mybatis-1-2023-3-19
    在配置前要加载依赖以及build (pom.xml中添加各种依赖)以及连接数据库<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"......
  • 在IDEA中使用JRebel插件实现热部署(包括mybatis的xml文件)
    省流版下载插件JRebelandXRebel和JRebelmybatisPlusextension详细版首先,我的IDEA下载了官方中文插件(Chinese​(Simplified)​LanguagePack/中文语言包),所以在......
  • REST风格下的SpringMVC简单响应方法
    学习中,如有错误请见谅  项目结构   ServletContainersInitConfigpublicclassServletContainersInitConfigextendsAbstractAnnotationConfigDispatcher......
  • SpringMVC 简单响应
    学习中,如有错误请多包涵项目结构  @Configuration@ComponentScan("com.itheima.controller")//开启json数据类型自动转换@EnableWebMvcpublicclassSpringMvc......
  • 尚硅谷MyBatis_2_搭建MyBatis
    创建maven工程pom.xml配置打包方式jar引入依赖<dependencies><!--Mybatis核心--><dependency><groupId>org.mybatis</group......
  • Mybatis-Plus查询投影详解
    查询投影的作用是在查询数据库时只返回所需的字段,而不是返回全部的字段。这样可以实现以下几个方面的作用:减少网络传输数据量:只返回需要的字段,可以减少从数据库服务器到......
  • 尚硅谷MyBatis_1_Mybatis简介
    尚硅谷MyBatis_1_Mybatis简介1.MyBatis历史MyBatis最初是Apache的一个开源项目iBatis,2010年6月这个项目由ApacheSoftwareFoundation迁移到了GoogleCode。随着开发团......
  • MyBatis
    MyBatis1简介1.1什么是MyBatis优秀的持久层框架支持定制化SQL、存储过程以及高级映射MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集MyBatis可以......
  • 狂神说的MyBatisPlus笔记 -https://blog.csdn.net/weixin_43070148/article/details/1
    狂神说的MyBatisPlus笔记https://blog.csdn.net/weixin_43070148/article/details/127313367学习MyBatis-Plus之前要先学MyBatis–>Spring—>SpringMVC为什么要学它?MyB......