当前位置: 首页 > news >正文

怎呀做网站深圳网站建设联雅网络

怎呀做网站,深圳网站建设联雅网络,广告联盟平台排名,做网站需要了解的东西文章目录 REST风格1 REST简介问题导入1.1 REST介绍1.2 RESTful介绍1.3 注意事项 2 RESTful入门案例问题导入2.1 快速入门2.2 PathVariable介绍2.3 RequestBody、RequestParam、PathVariable区别和应用 3 REST快速开发【重点】3.1 代码中的问题3.2 Rest快速开发 4案例#xff1… 文章目录 REST风格1 REST简介问题导入1.1 REST介绍1.2 RESTful介绍1.3 注意事项 2 RESTful入门案例问题导入2.1 快速入门2.2 PathVariable介绍2.3 RequestBody、RequestParam、PathVariable区别和应用 3 REST快速开发【重点】3.1 代码中的问题3.2 Rest快速开发 4案例基于RESTful页面数据交互4.1 案例效果和环境准备4.1.1 案例效果4.1.2 环境准备 4.2 代码实现4.2.1 制作SpringMVC控制器并通过PostMan测试接口功能4.2.2 设置对静态资源的访问放行4.2.3 前端页面通过异步提交访问后台控制器 REST风格 1 REST简介 问题导入 Rest风格使用了几种请求方式定义访问行为 答四种GET,POST,PUT,DELETE 1.1 REST介绍 RESTRepresentational State Transfer表现形式状态转换 传统风格资源描述形式 http://localhost/user/getById?id1 http://localhost/user/saveUserREST风格描述形式 http://localhost/user/1 http://localhost/user 优点 隐藏资源的访问行为无法通过地址得知对资源是何种操作书写简化 1.2 RESTful介绍 按照REST风格访问资源时使用行为动作区分对资源进行了何种操作 http://localhost/users 查询全部用户信息 GET查询 http://localhost/users/1 查询指定用户信息 GET查询 http://localhost/users 添加用户信息 POST新增/保存 http://localhost/users 修改用户信息 PUT修改/更新 http://localhost/users/1 删除用户信息 DELETE删除根据REST风格对资源进行访问称为RESTful 1.3 注意事项 上述行为是约定方式约定不是规范可以打破所以称REST风格而不是REST规范描述模块的名称通常使用复数也就是加s的格式描述表示此类资源而非单个资源例如users、books、accounts…… 2 RESTful入门案例 问题导入 Rest风格如何通过路径传递参数 2.1 快速入门 做法在Controller中定义方法时设定http请求动作(请求方式)“和设定请求参数路径变量” Controller public class UserController {//设置当前请求方法为POST表示REST风格中的添加操作RequestMapping(value /users,method RequestMethod.POST)ResponseBodypublic String save(){System.out.println(user save...);return {module:user save};}//设置当前请求方法为DELETE表示REST风格中的删除操作//PathVariable注解用于设置路径变量路径参数要求路径上设置对应的占位符并且占位符名称与方法形参名称相同RequestMapping(value /users/{id},method RequestMethod.DELETE)ResponseBodypublic String delete(PathVariable Integer id){System.out.println(user delete... id);return {module:user delete};}//设置当前请求方法为PUT表示REST风格中的修改操作RequestMapping(value /users,method RequestMethod.PUT)ResponseBodypublic String update(RequestBody User user){System.out.println(user update...user);return {module:user update};}//设置当前请求方法为GET表示REST风格中的查询操作//PathVariable注解用于设置路径变量路径参数要求路径上设置对应的占位符并且占位符名称与方法形参名称相同RequestMapping(value /users/{id} ,method RequestMethod.GET)ResponseBodypublic String getById(PathVariable Integer id){System.out.println(user getById...id);return {module:user getById};}//设置当前请求方法为GET表示REST风格中的查询操作RequestMapping(value /users,method RequestMethod.GET)ResponseBodypublic String getAll(){System.out.println(user getAll...);return {module:user getAll};} }2.2 PathVariable介绍 名称PathVariable类型形参注解位置SpringMVC控制器方法形参定义前面作用绑定路径参数与处理器方法形参间的关系要求路径参数名与形参名一一对应 2.3 RequestBody、RequestParam、PathVariable区别和应用 区别 RequestParam用于接收url地址传参或表单传参 RequestBody用于接收json数据 PathVariable用于接收路径参数使用{参数名称}描述路径参数应用 后期开发中发送请求参数超过1个时以json格式为主RequestBody应用较广 如果发送非json格式数据选用RequestParam接收请求参数 采用RESTful进行开发当参数数量较少时例如1个可以采用PathVariable接收请求路径变量通常用于传递id值 3 REST快速开发【重点】 3.1 代码中的问题 以上截图中的代码和我们之前写的UserController中的方法类似其中图中两个方法都有三处是有问题的可以进行优化。存在的问题如下 问题1每个方法的RequestMapping注解中都定义了访问路径/books重复性太高。 问题2每个方法的RequestMapping注解中都要使用method属性定义请求方式重复性太高。 问题3每个方法响应json都需要加上ResponseBody注解重复性太高。 3.2 Rest快速开发 解决以上三个问题 解决问题1在Controller类上使用RequestMapping定义共同的访问路径。 Controller RequestMapping(/books) public class BookController {RequestMapping(method RequestMethod.POST)public String save(RequestBody Book book){System.out.println(book save... book);return {module:book save};}RequestMapping(value /{id} ,method RequestMethod.DELETE)public String delete(PathVariable Integer id){System.out.println(book delete... id);return {module:book delete};}RequestMapping(method RequestMethod.PUT)public String update(RequestBody Book book){System.out.println(book update...book);return {module:book update};}RequestMapping(value /{id} ,method RequestMethod.GET)public String getById(PathVariable Integer id){System.out.println(book getById...id);return {module:book getById};}RequestMapping(method RequestMethod.GET)public String getAll(){System.out.println(book getAll...);return {module:book getAll};} }解决问题2使用GetMapping PostMapping PutMapping DeleteMapping代替RequestMapping(methodRequestMethod.XXX) Controller RequestMapping(/books) public class BookController {// RequestMapping( method RequestMethod.POST)PostMapping//使用PostMapping简化Post请求方法对应的映射配置public String save(RequestBody Book book){System.out.println(book save... book);return {module:book save};}// RequestMapping(value /{id} ,method RequestMethod.DELETE)DeleteMapping(/{id}) //使用DeleteMapping简化DELETE请求方法对应的映射配置public String delete(PathVariable Integer id){System.out.println(book delete... id);return {module:book delete};}// RequestMapping(method RequestMethod.PUT)PutMapping //使用PutMapping简化Put请求方法对应的映射配置public String update(RequestBody Book book){System.out.println(book update...book);return {module:book update};}// RequestMapping(value /{id} ,method RequestMethod.GET)GetMapping(/{id}) //使用GetMapping简化GET请求方法对应的映射配置public String getById(PathVariable Integer id){System.out.println(book getById...id);return {module:book getById};}// RequestMapping(method RequestMethod.GET)GetMapping //使用GetMapping简化GET请求方法对应的映射配置public String getAll(){System.out.println(book getAll...);return {module:book getAll};} }名称GetMapping PostMapping PutMapping DeleteMapping类型方法注解位置基于SpringMVC的RESTful开发控制器方法定义上方作用设置当前控制器方法请求访问路径与请求动作每种对应一个请求动作例如GetMapping对应GET请求属性 value默认请求访问路径 解决问题3在Controller类上使用RestController注解等同于Controller与ResponseBody两个注解组合功能 RestController //使用RestController注解替换Controller与ResponseBody注解简化书写 RequestMapping(/books) public class BookController {//方法省略了没写 }名称RestController类型类注解位置基于SpringMVC的RESTful开发控制器类定义上方作用设置当前控制器类为RESTful风格等同于Controller与ResponseBody两个注解组合功能 4案例基于RESTful页面数据交互 4.1 案例效果和环境准备 4.1.1 案例效果 4.1.2 环境准备 //POJO实体类 public class Book {private Integer id;private String type;private String name;private String description;//同学们自己重写getter、setter、toString()方法... }//SpringMVC容器初始化类 public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {protected Class?[] getRootConfigClasses() {return new Class[0];}protected Class?[] getServletConfigClasses() {return new Class[]{SpringMvcConfig.class};}protected String[] getServletMappings() {return new String[]{/};}//乱码处理Overrideprotected Filter[] getServletFilters() {CharacterEncodingFilter filter new CharacterEncodingFilter();filter.setEncoding(UTF-8);return new Filter[]{filter};} }//SpringMVC配置类 Configuration ComponentScan({com.nuage.controller,com.nuage.config}) EnableWebMvc public class SpringMvcConfig { }4.2 代码实现 4.2.1 制作SpringMVC控制器并通过PostMan测试接口功能 RestController RequestMapping(/books) public class BookController {PostMappingpublic String save(RequestBody Book book){System.out.println(book save book);return {module:book save success};}GetMappingpublic ListBook getAll(){System.out.println(book getAll is running ...);ListBook bookList new ArrayListBook();Book book1 new Book();book1.setType(计算机);book1.setName(SpringMVC入门教程);book1.setDescription(小试牛刀);bookList.add(book1);Book book2 new Book();book2.setType(计算机);book2.setName(SpringMVC实战教程);book2.setDescription(一代宗师);bookList.add(book2);Book book3 new Book();book3.setType(计算机丛书);book3.setName(SpringMVC实战教程进阶);book3.setDescription(一代宗师呕心创作);bookList.add(book3);return bookList;} }4.2.2 设置对静态资源的访问放行 Configuration public class SpringMvcSupport extends WebMvcConfigurationSupport {//设置静态资源访问过滤当前类需要设置为配置类并被扫描加载Overrideprotected void addResourceHandlers(ResourceHandlerRegistry registry) {//当访问/pages/????时候从/pages目录下查找内容registry.addResourceHandler(/pages/**).addResourceLocations(/pages/);registry.addResourceHandler(/js/**).addResourceLocations(/js/); registry.addResourceHandler(/css/**).addResourceLocations(/css/); registry.addResourceHandler(/plugins/**).addResourceLocations(/plugins/);} }4.2.3 前端页面通过异步提交访问后台控制器 //添加 saveBook () {axios.post(/books,this.formData).then((res){}); }, //主页列表查询 getAll() {axios.get(/books).then((res){this.dataList res.data;}); },
http://www.pierceye.com/news/625958/

相关文章:

  • 今科云平台网站建设技术中国电力建设股份部官方网站
  • 门户网站的三大基本特征vs2017做的网站如何发布
  • 怎么样自己做网站接订单网站建设和的注意事项
  • 月付商城网站建站男装商城网站建设
  • 建网站的步骤及方法php做的网站怎么运行
  • 英德市住房和城乡建设局手机网站html5手机网站模板下载
  • 网站建设手机建设网站 系统占用空间
  • 网站没内容网站域名.xin
  • 布吉建设网站网站是怎么制作出来的
  • 有赞网站开发凡科建站网
  • html5商业网站开发北大青鸟wordpress免费模版
  • 网站建设及那个科目提升网站页面打开速度
  • 直接玩的网页游戏关键词优化工具有哪些
  • 单页面网站如何优化引流四川网站建设贴吧
  • 贵州省建设银行网站wordpress首页调用文章缩略图
  • 项城市住房和城乡建设局网站融资平台公司
  • asp企业网站设计sage wordpress
  • 做视频网站需要哪些条件wordpress登录页面背景图片尺寸
  • 专门教做衣服的网站西宁电商网站建设
  • 无锡网站科技公司qq哪家公司开发的
  • 强化 门户网站建设今天的新闻大事
  • 专业做刀具网站的公司单页面网站模板
  • 企业网站制作及cms技术wordpress站点 HTML
  • 网络宣传网站建设制作加盟网络推广方案怎么写
  • 花店网站建设毕设介绍wordpress批量导入txt
  • 上海市网站建设定制百度推广怎么优化关键词的质量
  • 建设工程质量检测公司网站html5 响应式音乐网站
  • 网站建设托管推广海报中文域名做的网站
  • 临沂专业网站建设公司哪家好网站建设的网页
  • 当牛做吗网站源代码分享百度云帝国怎么做网站