您的位置 首页 java

java1:像风走一万米

* 使用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";
                    }
                });
            },  

servlet 后台接收请求:

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

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

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

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

 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.pro File .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;
        })
    }  

FileSystemXmlAoolicationContext和ClassPathXmlApplicationContext 的区别?

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

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

文章来源:智云一二三科技

文章标题:java1:像风走一万米

文章地址:https://www.zhihuclub.com/198835.shtml

关于作者: 智云科技

热门文章

网站地图