java1:像风走一万米「建议收藏」

java1:像风走一万米「建议收藏」使用axios发送多个请求:servlet后台接收请求:文件是不可以双向绑定的,是二进制数据。防止每次返回的验证码一致,get发送的请求包括参数

大家好,欢迎来到IT知识分享网。

* 使用axios发送多个请求:

login() {
                let formData = new FormData();
                formData.append("username",this.user.username);
                formData.append("password",this.user.password);
                formData.append("code",this.user.code);
                axios({
                    method: "post",
                    url: "admin/login.do",
                    data: formData,
                }).then(response => {
                    let data = response.data;
                    alert(data.message);
                    if(data.code == '2'){
                    //    登录成功
                        location.href = "student.html";
                    }
                });
            },

IT知识分享网

servlet后台接收请求:

IT知识分享网String myCode = req.getParameter("code");
 String username = req.getParameter("username");
 String password = req.getParameter("password");

文件是不可以双向绑定的,是二进制数据

//    ajax是异步请求,ajax会单独开辟一个线程来自己走,和我们的主JS程序不在同一个线程内
//    我们需要让我们的ajax和我们的主JS在同一个线程内
//    通过async 和 await修饰符就把ajax改成了同步请求

防止每次返回的验证码一致,get发送的请求包括参数,改变参数访问一个新的地址,避免浏览器的缓存

IT知识分享网change() {
                // 为了避免浏览器缓存,传一个参数
                // 这个参数是没有意义的,它就是为了防止浏览器缓存
                // verify.do?v=0.123123
                // verify.do?v=0.5645656
                this.src = 'verify.do?v=' + Math.random();
            },
async verifyUsername() {
                if(this.user.username.length < 6 || this.user.username.length > 12){
                    this.msg = "用户名必须在6-12位";
                    return false;
                }
              
                let flag = false;
                
                await axios.get("admin/checkUser.do?username=" + this.user.username).then(response=>{
                    // console.log(response.data);
                    this.msg = response.data.message;
                    if(response.data.code == '0'){
                        flag = false;
                    }
                    if(response.data.code == '1'){
                        flag = true;
                    }
                });
                // 返回值是一个Promise对象。是一个特殊的对象。3个属性
                return flag;
            },

promise对象:

什么是回调函数?

当一个函数作为参数传入到另外一个函数,并且该函数不会立即执行;当满足某个条件时才执行该函数

同步任务:在主线程队列中,只有前一个任务完成后才会执行下一个任务

异步任务:不进入主线程队列,而是进入异步队列,前一个任务完成与否不影响后一个任务的执行(不阻塞后续任务执行的任务)

回调地狱?

这种回调函数中嵌套回调函数的情况就叫做回调地狱。回调地狱就是为是实现代码顺序执行而出现的一种操作

(1)代码的可读性差、可维护性差

(2)代码的扩展性差

要求,如果上传的数据中包含了二进制数据(文件),需要使用formData,来封装数据
//    头像,文件怎么拼?
//    this.$refs.profile.files[0],获取对应的文件的二进制形式
//    $refs:代表设置了ref属性的表单元素
//    profile:找到ref属性为profile的表单元素
//    files[0]:找到ref属性为profile的第一个表单元素
    formData.append("profile",this.$refs.profile.files[0]);
* 'content-Type':'multipart/form-data'
* 代表我要传输的数据以多部分的格式来传输。
* HTML要求提交文件:multipart/form-data
* 提交普通的数据:application/x-www-form-urlencoded
headers:{
    'content-Type':'multipart/form-data'
}

遍历新增一条数据怎么写?

<tr v-for="(stu,index) in students">
                <td>{
<!-- -->{stu.id}}</td>
                <td>{
<!-- -->{stu.name}}</td>
                <td>{
<!-- -->{stu.gender}}</td>
                <td>{
<!-- -->{stu.age}}</td>
                <td>
                    <a href="#">修改</a>
                    <a href="#">删除</a>
                </td>
            </tr>
Vue的生命周期函数
created()函数就在我们访问这个页面就会执行,不能写在methods里面
打开页面直接发送请求:
created(){
        axios.get("list.student").then(res => {
            this.students = res.data.value;
        })
    }
java1:像风走一万米「建议收藏」

java1:像风走一万米「建议收藏」

java1:像风走一万米「建议收藏」

java1:像风走一万米「建议收藏」

java1:像风走一万米「建议收藏」

FileSystemXmlAoolicationContext和ClassPathXmlApplicationContext 的区别?

使用ClassPathXmlApplicationContext时写配置文件相对src的相对路径

使用 FileSystemXmlAoolicationContext时使用带盘符的全路径

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/6947.html

(0)
上一篇 2023-01-03 09:54
下一篇 2023-01-03 09:54

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信