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

致力于网站建设网站建设好之后怎么上传东西

致力于网站建设,网站建设好之后怎么上传东西,男生和女生在一起探讨人生软件,个人电脑可以做网站服务器吗REST全称Representation State Transfer#xff0c;表现形式状态转换 文章目录 1. 为什么提出了REST#xff1f;2. RESTful入门案例案例代码修改请求方式修改成RESTful风格#xff0c;并以POST方式提交 RESTful格式下传参RESTful入门案例总结RequestBody#xff0c;Reques…REST全称Representation State Transfer表现形式状态转换 文章目录 1. 为什么提出了REST2. RESTful入门案例案例代码修改请求方式修改成RESTful风格并以POST方式提交 RESTful格式下传参RESTful入门案例总结RequestBodyRequestParamPathVariable总结 3. RESTful快速开发第一次修改第二次修改快速开发注解总结 4. RESTful案例开发案例代码一些config的设定和domain等后台Controller的开发 1. 为什么提出了REST 传统风格资源描述形式 http://localhost/user/getById?id1http://localhost/user/saveUser REST风格描述形式 http://localhost/user/1http://localhost/user REST风格优点 隐藏资源的访问行为无法通过地址得知对资源是何种操作REST风格描述的第二项既可以描述一个saveUser操作也可以描述一个updateUser操作书写简化 按照REST风格访问资源时使用行为动作区分对资源进行了何种操作根据REST风格对资源进行访问称为RESTful 地址作用行为动作http://localhost/users查询全部用户信息GET (查询)http://localhost/user/1查询指定用户信息GET (查询)http://localhost/users添加用户信息POST (新增/保存)http://localhost/users修改用户信息PUT (修改/更新)http://localhost/users/1删除用户信息DELETE (删除) 注 上述行为是约定方式约定不是规范可以打破所以称REST风格而不是REST规范 描述模块的名称通常使用复数也就是加s的格式描述表示此类资源而非单个资源例如users、books、accounts… 2. RESTful入门案例 案例代码 config/ServletContainerInitConfig.java package com.demo.config;import org.apache.ibatis.jdbc.Null; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import org.springframework.web.filter.CharacterEncodingFilter; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; import org.springframework.web.servlet.support.AbstractDispatcherServletInitializer;import javax.servlet.Filter;public class ServletContainerInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {Overrideprotected Class?[] getRootConfigClasses() {return new Class[0];}Overrideprotected Class?[] getServletConfigClasses() {return new Class[]{SpringMvcConfig.class};}Overrideprotected String[] getServletMappings() {return new String[]{/};}Overrideprotected Filter[] getServletFilters() {CharacterEncodingFilter filter new CharacterEncodingFilter();filter.setEncoding(UTF-8);return new Filter[]{filter};} }config/SpringMvcConfig.java package com.demo.config;import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc;Configuration ComponentScan(com.demo.controller) EnableWebMvc public class SpringMvcConfig { }controller/BookController.java package com.demo.controller;import com.demo.domain.Book; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*;Controller public class BookController {RequestMapping(value /books, method RequestMethod.POST)ResponseBodypublic String save(RequestBody Book book){System.out.println(book save ...);return {module: book save};}RequestMapping(value /books, method RequestMethod.DELETE)ResponseBodypublic String delete(PathVariable Integer id){System.out.println(book delete ... id);return {module: book delete};}RequestMapping(value /books, method RequestMethod.PUT)ResponseBodypublic String update(RequestBody Book book){System.out.println(book update ... book);return {module: book update};}RequestMapping(value /books/{id}, method RequestMethod.GET)ResponseBodypublic String getById(PathVariable Integer id){System.out.println(book getById ... id);return {module: book getById};}RequestMapping(value /books, method RequestMethod.GET)ResponseBodypublic String getAll(){System.out.println(book getAll ...);return {module: book update};} } controller/UserController.java package com.demo.controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;Controller public class UserController {RequestMapping(/save)ResponseBodypublic String save(){System.out.println(User save...);return {module: springmvc};}RequestMapping(/delete)ResponseBodypublic String delete(Integer id){System.out.println(User delete... id);return {module: springmvc};}RequestMapping(/update)ResponseBodypublic String update(RequestBody User user){System.out.println(User update... user);return {module: springmvc};} }domain/User.java package com.demo.domain;public class User {private String name;private int age;Address address;Overridepublic String toString() {return User{ name name \ , age age , address address };}public Address getAddress() {return address;}public void setAddress(Address address) {this.address address;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;} } domain/Book.java package com.demo.domain;public class Book {String bookName;String issn;Overridepublic String toString() {return Book{ bookName bookName \ , issn issn \ };}public String getBookName() {return bookName;}public void setBookName(String bookName) {this.bookName bookName;}public String getIssn() {return issn;}public void setIssn(String issn) {this.issn issn;} }修改请求方式 测试一下UserController中的三个方法 修改成RESTful风格并以POST方式提交 将两个方法上的RequestMapping注解均新增一个method属性并修改value属性如下 RequestMapping(value /users, method RequestMethod.POST) RequestMapping(value /users, method RequestMethod.DELETE) RequestMapping(value /users, method RequestMethod.PUT)再运行发现可以运行注意Postman中请求的模式要记得修改 RESTful格式下传参 我们的delete方法中是有参数的那在RESTful风格下我们的路径是localhost/delete/1那这个1怎么传到方法中的id里呢 应该在路径后面接上{variable name}来表示我们想要传递的参数这里variable name填写的应该是方法中的参数名并在方法的参数前面使用PathVariable注解声明该变量来自路径。例如 RequestMapping(value /users/{id}, method RequestMethod.DELETE) ResponseBody public String delete(PathVariable Integer id){System.out.println(User delete... id);return {module: springmvc}; }但对于像Update方法中这种传User这种POJO数据注意 Integer不算POJO数据的则不需要做改动 修改后请求delete方法如下 请求update方法仍然是将JSON数据转换为POJO RESTful入门案例总结 想要使用RESTful风格步骤如下 设定http请求动作动词如Request.POST, Request.PUT, Request.GET, Request.Delete等设定请求参数路径变量在请求路径中使用{variable name}添加请求参数方法中的参数前使用PathVariable进行注解 RequestBodyRequestParamPathVariable总结 区别 RequestBody用于接收JSON数据RequestParam用于接收url地址或表单传参PathVariable用于接收路径参数使用{参数名称}描述路径参数 应用 后期开发中发送请求参数超过1个时以JSON格式为主RequestBody应用较广发送非JSON格式数据选用RequestParam接收请求参数采用RESTful开发当参数量较少时例如1个可以采用PathVariable接收请求路径变量通常用于传递id值。当然也可以通过PathVariable注解接收多个请求路径变量但多个变量主要还是用JSON 3. RESTful快速开发 入门案例中存在一个问题如下下边以BookController为例讲解红框中内容重复应该简化掉 第一次修改 针对于这个问题我们首先可以将RequestMapping作为类注解写在类上ResponseBody也可以作为类注解写在类上。但有一个更简便的办法RestController注解包含了Controller和ResponseBody最终修改如下 package com.demo.controller;import com.demo.domain.Book; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*;RequestMapping(books) RestController public class BookController {RequestMapping(method RequestMethod.POST)public String save(RequestBody Book book){System.out.println(book save ...);return {module: book save};}RequestMapping(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(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 update};} } 第二次修改 修改完以后代码里又存在大量的RequestMapping(method...)也挺冗余的可以做如下修改 将RequestMapping(method RequestMethod.xxx)替换成xxxMapping 如果在RequestMapping中还有表示参数的value就在xxxMapping后加上(参数路径)比如xxxMapping(/{id})。 所有代码再次修改如下 package com.demo.controller;import com.demo.domain.Book; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*;RequestMapping(books) RestController public class BookController {PostMappingpublic String save(RequestBody Book book){System.out.println(book save ...);return {module: book save};}DeleteMapping(/{id})public String delete(PathVariable Integer id){System.out.println(book delete ... id);return {module: book delete};}PutMappingpublic String update(RequestBody Book book){System.out.println(book update ... book);return {module: book update};}GetMapping(/{id})public String getById(PathVariable Integer id){System.out.println(book getById ... id);return {module: book getById};}GetMappingpublic String getAll(){System.out.println(book getAll ...);return {module: book update};} } 逐项进行测试 控制台输出 快速开发注解总结 RestController类注解在控制器类上方进行定义设置当前控制器为RESTful风格等同于Controller和ResponseBody两个注解组合功能GetMapping,PostMapping,PutMapping,DeleteMapping方法注解注解在SpringMVC的RESTful开发控制器方法上方其作用是设置当前控制器方法访问路径与请求动作每种对应一个请求动作 4. RESTful案例开发 我们在这个案例下的目标是通过RESTful实现案例交互发送RESTful请求获取数据后在页面中展示结果 案例代码一些config的设定和domain等 config/SevletContainerInitConfig.java package com.demo.config;import org.apache.ibatis.jdbc.Null; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import org.springframework.web.filter.CharacterEncodingFilter; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; import org.springframework.web.servlet.support.AbstractDispatcherServletInitializer;import javax.servlet.Filter;public class ServletContainerInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {Overrideprotected Class?[] getRootConfigClasses() {return new Class[0];}Overrideprotected Class?[] getServletConfigClasses() {return new Class[]{SpringMvcConfig.class};}Overrideprotected String[] getServletMappings() {return new String[]{/};}Overrideprotected Filter[] getServletFilters() {CharacterEncodingFilter filter new CharacterEncodingFilter();filter.setEncoding(UTF-8);return new Filter[]{filter};} }config/SpringMvcConfig.java package com.demo.config;import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc;Configuration ComponentScan(com.demo.controller) EnableWebMvc public class SpringMvcConfig { }domain/Book.java package com.demo.domain;public class Book {private Integer id;private String type;private String name;private String description;Overridepublic String toString() {return Book{ id id , type type \ , name name \ , description description \ };}public Integer getId() {return id;}public void setId(Integer id) {this.id id;}public String getType() {return type;}public void setType(String type) {this.type type;}public String getName() {return name;}public void setName(String name) {this.name name;}public String getDescription() {return description;}public void setDescription(String description) {this.description description;} } 后台Controller的开发 写一个save方法和一个getAll方法 package com.demo.controller;import com.demo.domain.Book; import org.springframework.web.bind.annotation.*;import java.util.ArrayList; import java.util.List;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(){Book book1 new Book();book1.setType(计算机);book1.setName(SpringMVC1111);book1.setDescription(小试牛刀);Book book2 new Book();book2.setType(计算机);book2.setName(SpringMvc2222);book2.setDescription(一代宗师);ListBook bookList new ArrayList();bookList.add(book1);bookList.add(book2);return bookList;}}启动Tomcat容器进行测试 前端使用了ElementUIVue但是我目前不太记得这个东西了等我弄清楚了再来这里补充可以先转去视频里边有很详细的介绍完整的案例开发Bilibili-基于RESTful的页面数据交互
http://www.huolong8.cn/news/462743/

相关文章:

  • 做么做好网站运营网线接线顺序
  • 比较好的设计网站南联企业网站建设
  • 什么系统做购物网站好wordpress4.7.4+for+sae
  • 站长工具是干嘛的响应式做的比较好的网站
  • 青海省建设工程监理协会网站如何更改公司网站内容
  • 怎么才能设计好一个网站商城网站推广方案
  • 宝安建网站的公司wordpress关闭手机访问
  • 陕西渭南富平建设局网站出口手工艺品网站建设方案
  • 泉州企业建站程序怀来住房和城乡建设局网站
  • 网站商城开发公司怎样推广
  • 中国国内网站建设哪家强建设标准网站
  • 网站建设公司推荐理由外贸网站dns
  • 阿里云备案 网站备案域名购买长沙做网站美工的公司
  • 软件开发包括网站开发吗做网站时怎么裁切存图
  • 网站开发大概需要多少钱湖北聚四方建设有限公司网站
  • 南通网站的优化高端品牌是什么意思
  • 余姚公司做网站WordPress为啥这么慢
  • 凯里网站建设哪家好网络推广方案的概念
  • 关于网站建设毕业答辩怎么说网站公司广州
  • 网站会员系统源码网络营销做女鞋的网站设计
  • 内网电脑做网站北京商场哪个便宜又好
  • 网站安全查询系统新公司名字注册查询
  • 甘肃省第九建设集团网站首页公众号排版编辑器
  • 做网站的目标客户长沙网站优化方式
  • 网站公司谁家好响应是网站怎么做
  • 网站开发语言是什么 东西小程序的模板
  • 做直播网站vps可以吗买东西在什么网站最好
  • 网站空间免费 优帮云网站建设费要摊销
  • 常州做网站优化宣传方式有哪些
  • 公司网站建设哪家正规海淘网站建设