• java01


    * 使用axios发送多个请求:

    1. login() {
    2. let formData = new FormData();
    3. formData.append("username",this.user.username);
    4. formData.append("password",this.user.password);
    5. formData.append("code",this.user.code);
    6. axios({
    7. method: "post",
    8. url: "admin/login.do",
    9. data: formData,
    10. }).then(response => {
    11. let data = response.data;
    12. alert(data.message);
    13. if(data.code == '2'){
    14. // 登录成功
    15. location.href = "student.html";
    16. }
    17. });
    18. },

    servlet后台接收请求:

    1. String myCode = req.getParameter("code");
    2. String username = req.getParameter("username");
    3. String password = req.getParameter("password");

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

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

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

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

    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'
    }
    

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

    1. for="(stu,index) in students">
    2. {{stu.id}}
    3. {{stu.name}}
    4. {{stu.gender}}
    5. {{stu.age}}
    Vue的生命周期函数
    created()函数就在我们访问这个页面就会执行,不能写在methods里面
    打开页面直接发送请求:
    
    1. created(){
    2. axios.get("list.student").then(res => {
    3. this.students = res.data.value;
    4. })
    5. }

     

     FileSystemXmlAoolicationContext和ClassPathXmlApplicationContext 的区别?

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

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

  • 相关阅读:
    魔法诗~~~一套基于Vue开发的实用、高端、炫酷的响应式前端网页!!!
    VSCode使用
    新版Logcat体验与分享—NEW Logcat in Android Studio Dolphin
    Ceph入门到精通-高功性能文件系统hpfs
    输入输出优化
    unity中的模型坐标系与3dmax导出的模型坐标系不一致的解决方案
    hive sql,年月日 时分秒格式的数据,以15分钟为时间段,找出每一条数据所在时间段的上下界限时间值(15分钟分区)
    子集和问题(回溯法)
    分布式事务入门
    thinkCMF6 更改站点信息注意事项
  • 原文地址:https://blog.csdn.net/qq_56951318/article/details/126721131