首页 > 其他分享 >2022-09-01 卢睿 学习心得

2022-09-01 卢睿 学习心得

时间:2022-09-02 21:58:26浏览次数:67  
标签:username function 01 请求 09 xhr Ajax POST 卢睿

目录

1.Ajax

  • 异步刷新(局部刷新),前端技术——可以给后台发请求
  • 四种发请求的方式
    • 地址栏
    • a标签
    • form表单
    • location.href或window.open()
  • 异步:整个页面不会全部刷新,只有某个局部在刷新
    • 例如:验证用户名是否存在
  • 刷新:
  • 请求头:
    • post请求才有请求体
  • Ajax发起请求,后台给出的响应会回到Ajax

JS原生的Ajax

  • re'a'dread
    • 0——初始化成功,open未调用
    • 1——open被调用,建立的连接
    • 2——send被调用,可以获取状态行和响应头
    • 3——可以拿到响应体,响应体加载中
    • 4——响应体下载完成,可以直接使用responseText

GET请求

        // 向后台发请求
        // 使用ajax
        let xhr=new XMLHttpRequest();
        // 设置请求的方式和URL
        xhr.open("GET","hello?username="+user);
        // 发请求
        xhr.send(null);
        // 指定xhr的状态处理函数
        xhr.onreadystatechange=function () {
            if (this.readyState === 4){
                // 通过xhr的responseText获取到对应的响应体
                span.innerText=xhr.responseText;
            }
        };

POST请求

        // 向后台发请求
        // 使用ajax
        let xhr=new XMLHttpRequest();
        // 发送POST请求
        xhr.open("POST","hello");
        // 设置请求头信息
        xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        // 发请求,设置请求体
        xhr.send("username="+user);
        // 指定xhr的状态处理函数
        xhr.onreadystatechange=function () {
            if (this.readyState === 4){
                // 通过xhr的responseText获取到对应的响应体
                span.innerText=xhr.responseText;
            }
        };

JQuery的Ajax

发送GET请求

 		$.get("hello?username=" + user, function (data) {
            alert(data)
        });

发送POST请求

        $.post("hello","username=" + user, function (data) {
            alert(data)
        });

完整写法

        $.ajax({
            url:"hello",
            data:{"username=":username},
            type:"post",
            success:function (res) {
            },
            error:function (res) {

            },
        });

Ajax(aixos)

对原生的Ajax的一个封装

ES6的:Promise语法

GET请求

  • aixos发送GET请求,这个请求中如果有参数,还是一个默认的以文档流的形式发送,和之前的任何一种请求方式没有任何区别。

                 get:function(){
       
                     axios.get("wea?city="+this.city).then(function (response) {
                         app1.msg2=response.data;
                     });
                 },
    

POST请求

  • aixos发送POST请求,这个请求中如果有参数,会把请求体转成json串,然后发给后台

               post:function(){
                     axios.post("wea",{"city":this.city}).then(function (response) {
                         app1.msg2=response.data;
                     })
                 },
    

    【封装对象的前提:json串中的数据的key和对象的属性名要一致】

注意点:

  1. 【使用Ajax发送请求,页面是不可以通过后台跳转页面,如果需要跳转页面,也是通过前端的JS来跳转,不可能通过Servlet来跳转】
  2. 【Ajax和form表单不能同时使用】
    1. Ajax:不能跳转页面
    2. form表单:一定要跳转页面的

json

package com.jsoft.afternoon;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(name = "VueServlet", value = "/vue.do")
public class VueServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("vueSevlet已经接到了请求...");

        // rquest.getParameter()方法只能接收默认的文档流中的参数,接不了json串。
//        String username = request.getParameter("username");
//        System.out.println("username--->" + username);

        // 从request中获取了一个流,缓冲字符输入流
        /*
            1、get请求,后台没有对应的对象来封装,不能有私密数据。
            2、post请求,后台都是有对象跟着的。username,password-----User
                id,name,age,gender,email-----------Student
         */
        BufferedReader reader = request.getReader();
        String line = reader.readLine();
        System.out.println(line);
        /*
            封装对象的前提:
                json串中的数据的key和对象的属性名要一致。
                是根据set方法的名封装的。
         */
        User user = JSON.parseObject(line, User.class);
        System.out.println(user);

//        String sql = "select * from user where username = ? and password = ?"
//        userdao.get(sql,user.getUsername(),user.getPassword());

        PrintWriter out = response.getWriter();
        out.print("hello axios and vue...");
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
    }
}

标签:username,function,01,请求,09,xhr,Ajax,POST,卢睿
From: https://www.cnblogs.com/lurui711/p/16651330.html

相关文章

  • 1454. 异或和是质数的子集数 01背包
    题意给出n个互不相同的正整数。问存在多少个子集,使得子集中所有数的异或和是质数。由于答案可能很大,请你输出对109+7取模后的结果。分析题意就是指:从一堆元素中......
  • 2022-09-02 第四小组 王星苹 学习笔记
    学习心得在浏览器禁用cookie的情况下,HTTPSession仍可以用于会话管理机制转发调用的是HttpServletRequest对象中的方法转发时浏览器只请求一次服务器。重定向时,浏览器中......
  • 2022-09-02 第四组 王佳齐 学习笔记
    coolie:保存http状态,保存在客户端,保存在浏览器上的;登录信息,保存在浏览器上,以键值对的形式,不安全。使用cookie的流程:1.创建Cookie对象2.设置最大时效3.把cookie放到Ht......
  • NC16886 [NOI2001]炮兵阵地
    题目链接题目题目描述司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H"表示),也可能是平原(用"P"表示),如......
  • P4363 [九省联考 2018] 一双木棋 题解
    一道状压dp题,我写的记忆化搜索。注意到这道题已经下子的区域和未下子的区域有一条轮廓线分割,因此考虑右上到左下记纵向为1,横向为0,状压一下,然后顺着记忆化搜索(有点类似......
  • 2022-09-02 第四小组 王星苹 学习笔记
    学习心得axios对原生ajax的一个封装。学习总结ES6语法。Promise语法。 *axios发送get请求,*请求中如果有参数,还是一个默认的以文档里的形式发送,和之前的任何一......
  • java学习笔记018 反射
    1.java.lang.Class获取Class对象的四种方式//1Classclazz1=Person.class;//2Personp=newPerson();Classclazz2=p.getClass();//3 用得多Classclazz3=......
  • SI3933/GC3933/PAN3501/AS179 125K低频唤醒芯片同类型芯片的优势对比
    关于125K低频唤醒芯片,现在市面上有太多太多,像PAN3501、GC3933还有SI3933,都是替换SKYWORKS的AS179-92,同类型芯片的优势在哪里呢?今天小编挑一款给大家浅浅分享一下SI3933:3D......
  • 2022牛客暑假多校01B[Spirit Circle Observation]
    2022牛客暑假多校01B[SpiritCircleObservation]大致题意给出一个长度为\(n\)的字符串\(s\),求有多少个子串对\((A,B)\),满足\(1.|A|=|B|\)\(2.\overline{A}+1=......
  • AcWing算法基础课---第三讲基础算法---01DFS和BFS
    DFSAcWing842.排列数字#include<iostream>usingnamespacestd;constintN=10;intn;intpath[N],st[N];voiddfs(intu){if(u==n){......