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

什么网站设计素材多湖北微网站建设多少钱

什么网站设计素材多,湖北微网站建设多少钱,离我最近的电脑培训中心,dw制作网站模板1. REST 简介 REST#xff08;Representational State Transfer#xff09;#xff0c;表现形式状态转换#xff0c;它是一种软件架构风格。 当要表示一个网络资源的时候#xff0c;可以使用两种方式#xff1a; 传统风格资源描述形式 http://localhost/user/getById?…1. REST 简介 RESTRepresentational State Transfer表现形式状态转换它是一种软件架构风格。 当要表示一个网络资源的时候可以使用两种方式 传统风格资源描述形式 http://localhost/user/getById?id1 查询 id 为 1 的用户信息 http://localhost/user/saveUser 保存用户信息REST风格描述形式 http://localhost/user/1 查询 id 为 1 的用户信息 http://localhost/user 保存用户信息 传统方式一般是一个请求 url 对应一种操作这样做不仅麻烦也不安全因为会程序的人读了请求 url 地址就大概知道该 url 实现的是什么操作。 查看 REST 风格的描述会发现请求地址变简单了并且只看请求 URL 并不能轻易猜出该 URL 的具体功能。 所以 REST 的优点有 隐藏资源的访问行为无法通过地址得知对资源是何种操作。书写简化。 但是问题也随之而来一个相同的 url 地址既可以是新增也可以是修改或者查询该如何区分该请求到底是什么操作呢? 按照 REST 风格访问资源时使用请求动作区分对资源进行了何种操作 请求的方式比较多但是比较常用的就 4 种分别是 GET、POST、PUT、DELETE。不同的请求方式代表不同的操作类型 发送 GET 请求是用来做查询发送 POST 请求是用来做新增发送 PUT 请求是用来做修改发送 DELETE 请求是用来做删除 上述行为是约定方式约定不是规范可以打破所以称REST风格而不是REST规范。可以不这样做但不建议。 描述模块的名称通常使用复数也就是加 “s”。这样表示此类资源而非单个资源例如users、books、accounts… 根据 REST 风格对资源进行访问称为 RESTful。 在开发过程中大多都遵从 REST 风格来访问后台服务所以可以说以后都是基于 RESTful 来进行开发。 2. RESTful 入门案例 PathVariable 注解绑定路径参数与处理器方法形参间的关系要求路径参数名与形参名一一对应。 public class BookController {//用postman发post请求请求路径http://localhost/booksRequestMapping(value /books,method RequestMethod.POST)ResponseBodypublic String save(RequestBody Book book){System.out.println(book save... book);return {module:book save};}//用postman发delete请求请求路径http://localhost/books/1//请求路径中的“1”传给idRequestMapping(value /books/{id},method RequestMethod.DELETE)ResponseBody//PathVariable把请求路径中的变量值传给形参public String delete(PathVariable Integer id){System.out.println(book delete... id);return {module:book delete};}//用postman发put请求请求路径http://localhost/booksRequestMapping(value /books,method RequestMethod.PUT)ResponseBodypublic String update(RequestBody Book book){System.out.println(book update... book);return {module:book update};}//用postman发get请求请求路径http://localhost/books/1RequestMapping(value /books/{id},method RequestMethod.GET)ResponseBody//PathVariable把请求路径中的变量值传给形参public String getById(PathVariable Integer id){System.out.println(book getById... id);return {module:book getById};}//用postman发get请求请求路径http://localhost/booksRequestMapping(value /books,method RequestMethod.GET)ResponseBodypublic String getAll(){System.out.println(book getAll...);return {module:book getAll};} }RequestBody、RequestParam、PathVariable 三个注解之间的区别和应用分别是什么? 区别 RequestParam 用于接收 url 地址传参或表单传参。RequestBody 用于接收 json 数据。PathVariable 用于接收路径参数使用 {参数名称} 描述路径参数。 应用 后期开发中发送请求参数超过 1 个时以 json 格式为主RequestBody 应用较广。如果发送非 json 格式数据选用 RequestParam 接收请求参数。采用 RESTful 进行开发当参数数量较少时例如 1 个可以采用 PathVariable 接收请求路径变量通常用于传递 id 值。 3. RESTful 快速开发 在前面基础上 可以把相同的路径前缀写在类上即把RequestMapping(/books)提到类上。由于之前每个方法上都有ResponseBody注解所以可以统一写在类上。 得到如下代码 Controller ResponseBody RequestMapping(/books) public class BookController {//用postman发post请求请求路径http://localhost/booksRequestMapping(method RequestMethod.POST)public String save(RequestBody Book book){System.out.println(book save... book);return {module:book save};}//用postman发delete请求请求路径http://localhost/books/1//请求路径中的“1”传给idRequestMapping(value /{id},method RequestMethod.DELETE)//PathVariable把请求路径中的变量值传给形参public String delete(PathVariable Integer id){System.out.println(book delete... id);return {module:book delete};}//用postman发put请求请求路径http://localhost/booksRequestMapping(method RequestMethod.PUT)public String update(RequestBody Book book){System.out.println(book update... book);return {module:book update};}//用postman发get请求请求路径http://localhost/books/1RequestMapping(value /{id},method RequestMethod.GET)//PathVariable把请求路径中的变量值传给形参public String getById(PathVariable Integer id){System.out.println(book getById... id);return {module:book getById};}//用postman发get请求请求路径http://localhost/booksRequestMapping(method RequestMethod.GET)public String getAll(){System.out.println(book getAll...);return {module:book getAll};} }在上面代码的基础上Controller和ResponseBody注解可以用一个注解RestController替代。 请求动作也可以用更简单的注解表示。 // Controller // ResponseBody RestController RequestMapping(/books) public class BookController {//用postman发post请求请求路径http://localhost/books// RequestMapping(method RequestMethod.POST)PostMappingpublic String save(RequestBody Book book){System.out.println(book save... book);return {module:book save};}//用postman发delete请求请求路径http://localhost/books/1//请求路径中的“1”传给id// RequestMapping(value /{id},method RequestMethod.DELETE)DeleteMapping(/{id})//PathVariable把请求路径中的变量值传给形参public String delete(PathVariable Integer id){System.out.println(book delete... id);return {module:book delete};}//用postman发put请求请求路径http://localhost/books// RequestMapping(method RequestMethod.PUT)PutMappingpublic String update(RequestBody Book book){System.out.println(book update... book);return {module:book update};}//用postman发get请求请求路径http://localhost/books/1// RequestMapping(value /{id},method RequestMethod.GET)GetMapping(/{id})//PathVariable把请求路径中的变量值传给形参public String getById(PathVariable Integer id){System.out.println(book getById... id);return {module:book getById};}//用postman发get请求请求路径http://localhost/books// RequestMapping(method RequestMethod.GET)GetMappingpublic String getAll(){System.out.println(book getAll...);return {module:book getAll};} }上面的代码去掉注释后 RestController RequestMapping(/books) public class BookController {//用postman发post请求请求路径http://localhost/booksPostMappingpublic String save(RequestBody Book book){System.out.println(book save... book);return {module:book save};}//用postman发delete请求请求路径http://localhost/books/1//请求路径中的“1”传给idDeleteMapping(/{id})//PathVariable把请求路径中的变量值传给形参public String delete(PathVariable Integer id){System.out.println(book delete... id);return {module:book delete};}//用postman发put请求请求路径http://localhost/booksPutMappingpublic String update(RequestBody Book book){System.out.println(book update... book);return {module:book update};}//用postman发get请求请求路径http://localhost/books/1GetMapping(/{id})//PathVariable把请求路径中的变量值传给形参public String getById(PathVariable Integer id){System.out.println(book getById... id);return {module:book getById};}//用postman发get请求请求路径http://localhost/booksGetMappingpublic String getAll(){System.out.println(book getAll...);return {module:book getAll};} }4. 基于 RESTful 的页面数据交互 4.1 需求分析 需求一图片列表查询从后台返回数据将数据展示在页面上。 需求二新增图书将新增图书的数据传递到后台并在控制台打印。 说明此次案例的重点是在 SpringMVC 中使用 RESTful 实现前后台交互所以并没有和数据库进行交互所有数据使用假数据来完成开发。 4.2 后台接口开发 RestController RequestMapping(/books) public class BookController {//保存图书PostMappingpublic String save(RequestBody Book book){System.out.println(保存图书book);return {module:save book success};}//查询所有图书GetMappingpublic ListBook getAll(){System.out.println(查询所有图书...);ListBook bookList new ArrayList();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);return bookList;} }postman 测试 ① 测试新增 ② 测试查询 4.2 页面访问处理 (1) 拷贝静态页面将资料\功能页面下的所有内容拷贝到项目的 webapp 目录下。 (2) 访问 pages 目录下的 books.html 打开浏览器输入http://localhost/pages/books.html 为什么会出现错误 SpringMVC 拦截了静态资源根据 /pages/books.html去 controller 找对应的方法找不到所以会报 404 的错误。 SpringMVC 为什么会拦截静态资源呢 解决方案SpringMVC 需要将静态资源放行。 //设置静态资源访问过滤当前类需要设置为配置类并被扫描加载 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/);} }该配置类在 config 目录下SpringMVC 当前扫描的是 controller 包所以该配置类还未生效要想生效需要修改 SpringMvcConfig 配置类的扫描范围。 Configuration ComponentScan({com.itheima.controller,com.itheima.config}) EnableWebMvc//开启将JSON转换成对象的功能 public class SpringMvcConfig { }//或者Configuration ComponentScan(com.itheima) EnableWebMvc public class SpringMvcConfig { }(3) 修改 books.html 页面 页面完整代码 !DOCTYPE htmlhtmlhead!-- 页面meta --meta charsetutf-8titleSpringMVC案例/title!-- 引入样式 --link relstylesheet href../plugins/elementui/index.csslink relstylesheet href../plugins/font-awesome/css/font-awesome.min.csslink relstylesheet href../css/style.css/headbody classhold-transitiondiv idappdiv classcontent-headerh1图书管理/h1/divdiv classapp-containerdiv classboxdiv classfilter-containerel-input placeholder图书名称 stylewidth: 200px; classfilter-item/el-inputel-button classdalfBut查询/el-buttonel-button typeprimary classbutT clickopenSave()新建/el-button/divel-table sizesmall current-row-keyid :datadataList stripe highlight-current-rowel-table-column typeindex aligncenter label序号/el-table-columnel-table-column proptype label图书类别 aligncenter/el-table-columnel-table-column propname label图书名称 aligncenter/el-table-columnel-table-column propdescription label描述 aligncenter/el-table-columnel-table-column label操作 aligncentertemplate slot-scopescopeel-button typeprimary sizemini编辑/el-buttonel-button sizemini typedanger删除/el-button/template/el-table-column/el-tablediv classpagination-containerel-paginationclasspagiantioncurrent-changehandleCurrentChange:current-pagepagination.currentPage:page-sizepagination.pageSizelayouttotal, prev, pager, next, jumper:totalpagination.total/el-pagination/div!-- 新增标签弹层 --div classadd-formel-dialog title新增图书 :visible.syncdialogFormVisibleel-form refdataAddForm :modelformData :rulesrules label-positionright label-width100pxel-rowel-col :span12el-form-item label图书类别 proptypeel-input v-modelformData.type//el-form-item/el-colel-col :span12el-form-item label图书名称 propnameel-input v-modelformData.name//el-form-item/el-col/el-rowel-rowel-col :span24el-form-item label描述el-input v-modelformData.description typetextarea/el-input/el-form-item/el-col/el-row/el-formdiv slotfooter classdialog-footerel-button clickdialogFormVisible false取消/el-buttonel-button typeprimary clicksaveBook()确定/el-button/div/el-dialog/div/div/div/div/body!-- 引入组件库 --script src../js/vue.js/scriptscript src../plugins/elementui/index.js/scriptscript typetext/javascript src../js/jquery.min.js/scriptscript src../js/axios-0.18.0.js/scriptscriptvar vue new Vue({el: #app,data:{dataList: [],//当前页要展示的分页列表数据formData: {},//表单数据dialogFormVisible: false,//增加表单是否可见dialogFormVisible4Edit:false,//编辑表单是否可见pagination: {},//分页模型数据暂时弃用},//钩子函数VUE对象初始化完成后自动执行created() {this.getAll();},methods: {// 重置表单resetForm() {//清空输入框this.formData {};},// 弹出添加窗口openSave() {this.dialogFormVisible true;this.resetForm();},//添加saveBook () {axios.post(/books,this.formData).then((res){});},//主页列表查询getAll() {axios.get(/books).then((res){this.dataList res.data;});},}})/script /html
http://www.w-s-a.com/news/39043/

相关文章:

  • 从0到建网站wordpress导航主题模板下载地址
  • 以3d全景做的网站统计网站的代码
  • 北辰网站建设WordPress换主题文件夹
  • 做网站的合同范文百度分析工具
  • 深圳企业网站制作公司单位注册wordpress发送邮件
  • 兰州专业网站建设团队wordpress 拉取点击数
  • 基于php房产网站开发ppt模板免费下载第一ppt
  • 网站盈利模式分析怎么做山东营销网站建设联系方式
  • 二级网站建设 知乎我的个人主页模板
  • wordpress小说网站模板下载地址百度优化服务
  • 云南网页设计制作seo计费系统源码
  • 屏蔽ip网站吗行业外贸网站建设
  • 河北城乡建设学校网站常州网站建设公司平台
  • 合肥网站建设市场分析网站收录后怎么做排名
  • 湖南企业网站建设如何推广手机网站
  • 网站建设项目经历网站推广服务 商务服务
  • 加强网站的建设福州seo排名外包
  • 做婚庆找什么网站有专门为个人网站做推广的吗
  • 网站搭建要求模板学编程需要英语基础吗
  • 网上如何建网站卖量具净水机企业网站源码
  • 网站推广 软件规划设计公司年终总结
  • 视频网站开发方法微站网建站系统
  • 渐变网站网页界面设计的宗旨是什么
  • 网站排名提升工具免费韶关做网站公司
  • 做网站一个月可以赚多少钱东营市建设工程招标网
  • 网站开发工具阿里云怎么做网站
  • 用html做静态网站成都专业logo设计公司
  • 哪里有免费建站平台233小游戏网页版在线玩
  • 为什么我的网站做不起来网站能搜索到
  • 方又圆网站建设信息流广告二级代理