一、前言 当我们的项目涉及到多语言支持时,身为后端开发的我们,接口数据国际化便是我们必须攻克的问题。 后端国际化: 后端国际化主要关注处理与业务逻辑和数据相关的国际化问题。这包括但不限于日期和时间格式、货币符号、数字格式、排序规则、接口提示信息等。 后端国际化的目标是确保应用程序能够适应不同的语言和地区,并提供正确的本地化数据。后端国际化可以通过使用国际化库或框架,如SpringBoot I18n,来实现后端国际化功能。 三、小知识 在开始实现后端接口国际化之前,我们先来了解一些小知识。 messageMap中,由于StaticMessageSource并没有提供清除map数据的方法,因此只有当程序重启,数据库删除的国际化消息才能被反映到messageMap中 六、最后 好了,至此,我们的从零玩转后端接口数据交互国际化完结
上一篇说后面要进行前端与后端交互数据,那么就为正式开始交互之前打个铺垫。因为毕竟要开发一个全栈的应用,你不能光知道开发假数据页面,如何调用后端的api,进行数据交互是很重要的。 前端通过HTTP请求向后端发送数据,并通过HTTP响应从后端接收数据。 以下是前后端交互数据的一般流程: 前端发送请求:前端通过HTTP请求向后端发送数据。 在前后端交互数据的过程中,通常需要考虑数据安全、性能等方面的问题。为了提高交互数据的性能,前后端可以使用缓存、压缩、异步加载等技术。 为了保证数据的安全,前后端可以使用HTTPS协议、验证用户身份等技术。 那么我们开发的时候用的是vue框架,这个框架知识,前后端一般是如何交互数据的呢? 以下是Vue中进行前后端数据交互的一般流程: 定义API接口:后端开发人员定义API接口,描述了前端可以使用哪些HTTP请求类型和URL来请求数据。
前后端分离之后,网络请求是前端的必备技能。网络请求中浏览器工作流程,你了解多少? 一、什么是HTTP协议? 参数部分(query-string):发送给http服务器的数据,允许有多个参数,使用&链接多个参数。 锚部分(anchor):锚用来定位页面展示的开始位置,是非必须的。 三、HTTP三次握手和四次分手 浏览器在给服务器传输数据之前有三次握手,握手成功之后,才可以传输数据。 请求体:请求数据也叫请求体,可以添加任意其他数据。传输内容较多,可小于等于1G。 五、HTTP响应--Response 一般情况下,服务器接收并处理客户端发过来的请求会返回一个HTTP响应消息。 2 HEAD 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头 3 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。
method - 请求方法,默认GET signal - 用于取消 fetch headers - http请求头设置 keepalive - 用于页面卸载时,告诉浏览器在后台保持连接,继续发送数据。 响应体内的数据,根据类型各自处理。 type - 返回请求类型。 redirected - 返回布尔值,表示是否发生过跳转。 1.3、读取内容方法 response 对象根据服务器返回的不同类型数据,提供了不同的读取方法。 表单对象 response.arrayBuffer() - 得到二进制 arrayBuffer 对象 上述 5 个方法,返回的都是 promise 对象,必须等到异步操作结束,才能得到服务器返回的完整数据 xhr 会分别处理 get 和 post 数据传输,还有请求头设置,同样 fetch 也需要分别处理。 2.1、get 方式 只需要在url中加入传输数据,options中加入请求方式。
响应数据自动转换 JSON 数据。 支持请求取消。 可以批量发送多个请求。 客户端支持安全保护,免受 XSRF 攻击。 如:axios(config) /* 如发送一个post请求的配置参数如下 */ axios({ method: 'post', //请求方法 url: '/user/12345', //访问接口 method: 'get', url: 'http://localhost:80/one',//请求接口 responseType: 'stream'//响应形式 }) .then(function ((res1,res2)=>{ res1 //是第一个请求返回数据 res2 //是第二个请求返回数据 }) ) 使用 axios.spread 能够自动分割请求返回数据。 instance.defaults.headers.common['Authorization'] = AUTH_TOKEN 之所以使用 axios 实例化,是因为全局实例化 http 请求有全局的响应拦截,当我们某些接口无法返回状态码时
设计前后端交互的数据加密涉及到保护数据在传输过程中的安全性。以下是一种常见的设计方案: 1. 使用 HTTPS 协议 确保前后端之间的通信通过 HTTPS 协议进行。 数据加密算法 在前后端交互过程中,可以使用对称加密算法和非对称加密算法来保护数据的安全性。 对称加密算法: 前后端可以约定一个对称加密算法(如AES),前端使用后端提供的公钥对数据进行加密,后端使用私钥对数据进行解密。 密钥的生成、存储和使用都需要严格管理,以防止密钥泄露导致数据泄露。 5. 安全传输协议 在前后端交互过程中,使用安全的传输协议进行数据传输,如 JSON Web Token (JWT) 等。 通过以上设计方案,可以保障前后端交互数据的安全性和完整性。当然,在实际应用中,还需要考虑具体业务场景和安全需求,选择合适的加密算法和协议来保障数据传输过程中的安全。
method - 请求方法,默认GET signal - 用于取消 fetch headers - http请求头设置 keepalive - 用于页面卸载时,告诉浏览器在后台保持连接,继续发送数据。 响应体内的数据,根据类型各自处理。 type - 返回请求类型。 redirected - 返回布尔值,表示是否发生过跳转。 1.3、读取内容方法 response 对象根据服务器返回的不同类型数据,提供了不同的读取方法。 表单对象 response.arrayBuffer() - 得到二进制 arrayBuffer 对象 上述 5 个方法,返回的都是 promise 对象,必须等到异步操作结束,才能得到服务器返回的完整数据 xhr 会分别处理 get 和 post 数据传输,还有请求头设置,同样 fetch 也需要分别处理。 2.1、get 方式 只需要在url中加入传输数据,options中加入请求方式。
说明 我写这篇文章的目的其实是想科普一下基础的数据传输和交互流程,其实也就是写http协议相关的一些东西。 同样,json相对于后端程序来说也无外乎就是一大堆有一定意义的字符串,而对于JavaScript脚本来说,json就是表示一个数据对象。 AJAX是一种数据交互模式,其本身依旧遵循HTTP协议,但只不过通常是由我们自己利用程序接口,触发浏览器在后台隐式的进行数据请求和处理。 而这种异步交互本身都是基于HTTP协议的,而我们在自己写AJAX的时候,其实从另外一个角度来看,是我们接手了浏览器对于交互数据的处理,也就是说不按照浏览器本身的行为规则对数据进行处理,比如我们以json 以上大致就聊一下这些,主要是我个人的一些经验和对服务端数据交互的一些理解。
响应数据自动转换 JSON 数据。 支持请求取消。 可以批量发送多个请求。 客户端支持安全保护,免受 XSRF 攻击。 如:axios(config) /* 如发送一个post请求的配置参数如下 */ axios({ method: 'post', //请求方法 url: '/user/12345', //访问接口 method: 'get', url: 'http://localhost:80/one',//请求接口 responseType: 'stream'//响应形式 }) .then(function ((res1,res2)=>{ res1 //是第一个请求返回数据 res2 //是第二个请求返回数据 }) ) 使用 axios.spread 能够自动分割请求返回数据。 instance.defaults.headers.common['Authorization'] = AUTH_TOKEN 之所以使用 axios 实例化,是因为全局实例化 http 请求有全局的响应拦截,当我们某些接口无法返回状态码时
前后端分离之后,网络请求是前端的必备技能。网络请求中浏览器工作流程,你了解多少? 一、什么是HTTP协议? 参数部分(query-string):发送给http服务器的数据,允许有多个参数,使用&链接多个参数。 锚部分(anchor):锚用来定位页面展示的开始位置,是非必须的。 三、HTTP三次握手和四次分手 浏览器在给服务器传输数据之前有三次握手,握手成功之后,才可以传输数据。 请求体:请求数据也叫请求体,可以添加任意其他数据。传输内容较多,可小于等于1G。 五、HTTP响应--Response 一般情况下,服务器接收并处理客户端发过来的请求会返回一个HTTP响应消息。 2 HEAD 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头 3 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。
响应数据自动转换 JSON 数据。 支持请求取消。 可以批量发送多个请求。 客户端支持安全保护,免受 XSRF 攻击。 如:axios(config) /* 如发送一个post请求的配置参数如下 */ axios({ method: 'post', //请求方法 url: '/user/12345', //访问接口 method: 'get', url: 'http://localhost:80/one',//请求接口 responseType: 'stream'//响应形式 }) .then(function ((res1,res2)=>{ res1 //是第一个请求返回数据 res2 //是第二个请求返回数据 }) ) 使用 axios.spread 能够自动分割请求返回数据。 instance.defaults.headers.common['Authorization'] = AUTH_TOKEN 之所以使用 axios 实例化,是因为全局实例化 http 请求有全局的响应拦截,当我们某些接口无法返回状态码时
前后端分离之后,网络请求是前端的必备技能。网络请求中浏览器工作流程,你了解多少? 一、什么是HTTP协议? 参数部分(query-string):发送给http服务器的数据,允许有多个参数,使用&链接多个参数。 锚部分(anchor):锚用来定位页面展示的开始位置,是非必须的。 三、HTTP三次握手和四次分手 浏览器在给服务器传输数据之前有三次握手,握手成功之后,才可以传输数据。 请求体:请求数据也叫请求体,可以添加任意其他数据。传输内容较多,可小于等于1G。 五、HTTP响应--Response 一般情况下,服务器接收并处理客户端发过来的请求会返回一个HTTP响应消息。 2 HEAD 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头 3 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。
method - 请求方法,默认GET signal - 用于取消 fetch headers - http请求头设置 keepalive - 用于页面卸载时,告诉浏览器在后台保持连接,继续发送数据。 响应体内的数据,根据类型各自处理。 type - 返回请求类型。 redirected - 返回布尔值,表示是否发生过跳转。 1.3、读取内容方法 response 对象根据服务器返回的不同类型数据,提供了不同的读取方法。 表单对象 response.arrayBuffer() - 得到二进制 arrayBuffer 对象 上述 5 个方法,返回的都是 promise 对象,必须等到异步操作结束,才能得到服务器返回的完整数据 xhr 会分别处理 get 和 post 数据传输,还有请求头设置,同样 fetch 也需要分别处理。 2.1、get 方式 只需要在url中加入传输数据,options中加入请求方式。
数据库 数据库设计 完成注册登录以及用户分数管理 使用数据库来保存上述用户信息 创建 java_gobang 数据库, user 表,表示用户信息和分数信息 create database if not 创建 Mapper 接口 package org.example.model; /** * 接口里面创建一些典型的方法 */ public interface UserMapper org.example.java_gobang.model.User"> select * from user where username = #{username}; </select> </mapper> 约定前后端交互接口 application/json { userId: 1, username: ‘zhangsan’, score: 1000, totalCount: 0, winCount: 0 } 前后端交互的接口 ,在约定的时候,是有很多种交互方式的 这里约定好了之后,后续的后端/前端代码,都要严格地遵守这个约定来写代码 获取用户信息 从服务器获取到当前登录用户的信息 程序运行过程中,用户登录了之后,让客户端随时通过这个接口
1.2、请求类型分别处理 请求类型有 get 和 post 两种,get类型传值的时候,数据跟在url地址后,post传值时在请求体内携带,还需设置请求数据类型。所以需要判断分别处理。 xhr.setRequestHeader('content-type','application/x-www-form-urlencoded') xhr.send( strData ) } 1.3、请求超时处理 网络服务异常或者接口异常的时候 ); } return res.join('&'); } 使用的时候调用代码如下: ajax({ method:'GET', url:'1.txt', data:{ //请求数据
在springboot中实现国际化也是非常方便的。 因为想在的项目一般都是前后端分离的,所以这里只写下在RestAPI中进行国际化的操作 1,配置: spring:# 国际化 messages: # 国际化资源路径 basename: static/i18n /messages #相对路径 开头不要添加斜杠 encoding: UTF-8 这里面比较重要的配置,就是basename,指明我们的国际化资源所在的路径 2,新建国际化资源文件 和basename对应 messages_zh_CN.properties和messages_en_US.properties分别是中文和英文资源 文件名必须是这个格式 # useruser.register.err.username.repeat=用户名重复 3,配置国际化 好了 这样我们就将国际化的选择权交给了前端。
网页要处理数据,数据置于数据库之中。今天看了书,不能让知识遗忘,遂及时记下。 用 PHP 操作 MySQL ,实现数据的交换,还要多练练.... .js"></script> $conn 是连接数据库的返回值。 关闭连接则是 mysqli_close(); 检查数据库错误项 可用 mysql_error(); 比如 创建数据库books 则是 $result = mysql_query 删除数据库 books 则是 $result = mysql_query("drop database if it exists books"); 查询数据库books 的表信息 $i 可在 $_count 范围内辅助循环输出 查询数据库中表名称也类似: $_name = mysql_tablename($tables,$i); 选择数据库后
一、ajax介绍 ajax 是前后端交互的重要手段或桥梁。它不是一个技术,是一组技术的组合。 ajax :a:异步;j:js;a:和;x:服务端的数据。 ajax的组成: 异步的 js 事件 其他 js (处理解析数据) XMLHttpRequest 对象 数据(txt、json、xml、html) 通过后台与服务器进行少量数据交换,ajax可以使网页实现异步更新 xhr = new ActiveXObject("Microsoft.XMLHTTP") //兼容IE6 IE5 } 三、XMLHttpRequest的方法 3.1、open( ) 设置请求的类型、请求接口 使用语法:open( method , url , async ) method:设置网络请求的类型,常用的 get 和 post url:设置请求的接口也就是服务器的地址 async:true时表示异步 数据是键值对格式的,如:"name=jack&pwd=1234" 使用发送方式不同的时候,传输数据添加方式也不同,所以我们介绍下分别为post和get时,数据是如何发送的?
一、ajax介绍 ajax 是前后端交互的重要手段或桥梁。它不是一个技术,是一组技术的组合。 ajax :a:异步;j:js;a:和;x:服务端的数据。 ajax的组成: 异步的 js 事件 其他 js (处理解析数据) XMLHttpRequest 对象 数据(txt、json、xml、html) 通过后台与服务器进行少量数据交换,ajax可以使网页实现异步更新 xhr = new ActiveXObject("Microsoft.XMLHTTP") //兼容IE6 IE5 } 三、XMLHttpRequest的方法 3.1、open( ) 设置请求的类型、请求接口 使用语法:open( method , url , async ) method:设置网络请求的类型,常用的 get 和 post url:设置请求的接口也就是服务器的地址 async:true时表示异步 数据是键值对格式的,如:"name=jack&pwd=1234" 使用发送方式不同的时候,传输数据添加方式也不同,所以我们介绍下分别为post和get时,数据是如何发送的?
一、ajax介绍 ajax 是前后端交互的重要手段或桥梁。它不是一个技术,是一组技术的组合。 ajax :a:异步;j:js;a:和;x:服务端的数据。 ajax的组成: 异步的 js 事件 其他 js (处理解析数据) XMLHttpRequest 对象 数据(txt、json、xml、html) 通过后台与服务器进行少量数据交换,ajax可以使网页实现异步更新 xhr = new ActiveXObject("Microsoft.XMLHTTP") //兼容IE6 IE5 } 三、XMLHttpRequest的方法 3.1、open( ) 设置请求的类型、请求接口 使用语法:open( method , url , async ) method:设置网络请求的类型,常用的 get 和 post url:设置请求的接口也就是服务器的地址 async:true时表示异步 数据是键值对格式的,如:"name=jack&pwd=1234" 使用发送方式不同的时候,传输数据添加方式也不同,所以我们介绍下分别为post和get时,数据是如何发送的?