国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【JavaWeb】11—Axios Ajax

這篇具有很好參考價(jià)值的文章主要介紹了【JavaWeb】11—Axios Ajax。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

??????
Github主頁??https://github.com/A-BigTree
筆記鏈接??https://github.com/A-BigTree/Code_Learning
??????

如果可以,麻煩各位看官順手點(diǎn)個(gè)star~??

如果文章對你有所幫助,可以點(diǎn)贊??收藏?支持一下博主~??

12 Axios Ajax

12.1 Ajax概述

12.1.1 服務(wù)器端渲染

【JavaWeb】11—Axios Ajax

12.1.2 Ajax渲染(局部更新)

【JavaWeb】11—Axios Ajax

12.1.3 前后端分離

徹底舍棄服務(wù)器端渲染,數(shù)據(jù)全部通過Ajax方式以JSON格式來傳遞。

12.1.4 同步與異步

Ajax本身就是Asynchronous JavaScript And XML的縮寫,直譯為:異步的JavaScript和XML。在實(shí)際應(yīng)用中Ajax指的是:不刷新瀏覽器窗口,不做頁面跳轉(zhuǎn),局部更新頁面內(nèi)容的技術(shù)。

『同步』 和 *『異步』 *是一對相對的概念,那么什么是同步,什么是異步呢?

同步

多個(gè)操作按順序執(zhí)行,前面的操作沒有完成,后面的操作就必須等待。所以同步操作通常是串行的。

【JavaWeb】11—Axios Ajax

異步

多個(gè)操作相繼開始并發(fā)執(zhí)行,即使開始的先后順序不同,但是由于它們各自是在自己獨(dú)立的進(jìn)程或線程中完成,所以互不干擾,誰也不用等

【JavaWeb】11—Axios Ajax

12.1.5 Axios簡介

使用原生的JavaScript程序執(zhí)行Ajax極其繁瑣,所以一定要使用框架來完成。而Axios就是目前最流行的前端Ajax框架。

使用Axios和使用Vue一樣,導(dǎo)入對應(yīng)的*.js文件即可。官方提供的script標(biāo)簽引入方式為:

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

我們可以把這個(gè)axios.min.js文件下載下來保存到本地來使用。

12.2 Axios基本用法

12.2.1 測試

前端代碼
<html>
  <head>
    <title>Axios Test</title>
  </head>
  <body>
  <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
  <script src="https://unpkg.com/axios/dist/axios.min.js"></script>

  <div id="app">
    <button @click="commonParam">普通請求參數(shù)</button>
  </div>

  <script>
    const { createApp } = Vue
    const app = createApp({
      data(){},
      methods:{
        commonParam:function (){
          axios({
            method:"post",
            url:"/pro4_axios/AjaxServlet?method=commonParam",
            data: {
              userName: "tom",
              userPwd: "123456"
            }
          }).then(function (response){
            console.log(response);
          }).catch(function (error){
            console.log(error);
          });
        }
      }
    });
    app.mount("#app");
  </script>
  </body>
</html>
后端代碼
public class AjaxServlet extends ModelBaseServlet {
    protected void commonParam(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String userName = request.getParameter("userName");
        String userPwd = request.getParameter("userPwd");

        System.out.println("userName = " + userName);
        System.out.println("userPwd = " + userPwd);

        response.setContentType("text/html;charset=UTF-8");
        response.getWriter().write("服務(wù)器返回普通文本字符串");
    }
}
axios程序接收到的響應(yīng)對象結(jié)構(gòu)
屬性名 作用
config 調(diào)用axios(config對象)方法時(shí)傳入的JSON對象
data 服務(wù)器端返回的響應(yīng)體數(shù)據(jù)
headers 響應(yīng)消息頭
request 原生JavaScript執(zhí)行Ajax操作時(shí)使用的XMLHttpRequest
status 響應(yīng)狀態(tài)碼
statusText 響應(yīng)狀態(tài)碼的說明文本
服務(wù)器端處理請求失敗后
catch(function (error) {     // catch()服務(wù)器端處理請求出錯(cuò)后,會調(diào)用
    console.log(error);         // error就是出錯(cuò)時(shí)服務(wù)器端返回的響應(yīng)數(shù)據(jù)
    console.log(error.response);        // 在服務(wù)器端處理請求失敗后,獲取axios封裝的JSON格式的響應(yīng)數(shù)據(jù)對象
    console.log(error.response.status); // 在服務(wù)器端處理請求失敗后,獲取響應(yīng)狀態(tài)碼
    console.log(error.response.statusText); // 在服務(wù)器端處理請求失敗后,獲取響應(yīng)狀態(tài)說明文本
    console.log(error.response.data);   // 在服務(wù)器端處理請求失敗后,獲取響應(yīng)體數(shù)據(jù)
});

response對象的結(jié)構(gòu)還是和then()函數(shù)傳入的回調(diào)函數(shù)中的response是一樣的:

【JavaWeb】11—Axios Ajax

回調(diào)函數(shù):開發(fā)人員聲明,但是調(diào)用時(shí)交給系統(tǒng)來調(diào)用。像單擊響應(yīng)函數(shù)、then()、catch()里面?zhèn)魅氲亩际腔卣{(diào)函數(shù)?;卣{(diào)函數(shù)是相對于普通函數(shù)來說的,普通函數(shù)就是開發(fā)人員自己聲明,自己調(diào)用。

12.2.2 發(fā)送請求體JSON

后端代碼

Gson是Google研發(fā)的一款非常優(yōu)秀的JSON數(shù)據(jù)解析和生成工具,它可以幫助我們將數(shù)據(jù)在JSON字符串和Java對象之間互相轉(zhuǎn)換。文章來源地址http://www.zghlxwxcb.cn/news/detail-409939.html

protected void requestBodyJSON(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    // 1.由于請求體數(shù)據(jù)有可能很大,所以Servlet標(biāo)準(zhǔn)在設(shè)計(jì)API的時(shí)候要求我們通過輸入流來讀取
    BufferedReader reader = request.getReader();

    // 2.創(chuàng)建StringBuilder對象來累加存儲從請求體中讀取到的每一行
    StringBuilder builder = new StringBuilder();

    // 3.聲明臨時(shí)變量
    String bufferStr = null;

    // 4.循環(huán)讀取
    while((bufferStr = reader.readLine()) != null) {
        builder.append(bufferStr);
    }

    // 5.關(guān)閉流
    reader.close();

    // 6.累加的結(jié)果就是整個(gè)請求體
    String requestBody = builder.toString();

    // 7.創(chuàng)建Gson對象用于解析JSON字符串
    Gson gson = new Gson();

    // 8.將JSON字符串還原為Java對象
    Student student = gson.fromJson(requestBody, Student.class);
    System.out.println("student = " + student);

    System.out.println("requestBody = " + requestBody);

    response.setContentType("text/html;charset=UTF-8");
    response.getWriter().write("服務(wù)器端返回普通文本字符串作為響應(yīng)");
}

12.2.3 服務(wù)器端返回JSON數(shù)據(jù)

protected void responseBodyJSON(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    // 1.準(zhǔn)備數(shù)據(jù)對象
    Student student = new Student();
    student.setStuId(10);
    student.setStuName("tom");
    student.setSchool(new School(11,"atguigu"));
    student.setSubjectList(Arrays.asList(new Subject("java", 95.5), new Subject("php", 93.3)));

    Map<String, Teacher> teacherMap = new HashMap<>();
    teacherMap.put("t1", new Teacher("lili", 25));
    teacherMap.put("t2", new Teacher("mary", 26));
    teacherMap.put("t3", new Teacher("katty", 27));

    student.setTeacherMap(teacherMap);

    // 2.創(chuàng)建Gson對象
    Gson gson = new Gson();

    // 3.將Java對象轉(zhuǎn)換為JSON對象
    String json = gson.toJson(student);
    
    // 4.設(shè)置響應(yīng)體的內(nèi)容類型
    response.setContentType("application/json;charset=UTF-8");
    response.getWriter().write(json);
}

到了這里,關(guān)于【JavaWeb】11—Axios Ajax的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • JAVAWeb11-服務(wù)器渲染技術(shù) -JSP-01-JSP基礎(chǔ)

    JAVAWeb11-服務(wù)器渲染技術(shù) -JSP-01-JSP基礎(chǔ)

    1、JSP 使用情況 2、Thymeleaf 使用情況, 通常和 SpringBoot 結(jié)合(也會講) 3、Vue 使用情況 目前主流的技術(shù)是 前后端分離 (比如: Spring Boot + Vue/React ), 我們會講的.[看一下] JSP 技術(shù)使用在逐漸減少,但 使用少 和沒有使用是兩個(gè)意思,一些老項(xiàng)目和中小公司還在使用 JSP,工作期間,你

    2024年02月02日
    瀏覽(20)
  • JAVAWeb11-服務(wù)器渲染技術(shù) -JSP-03-JSTL(會使用)

    JAVAWeb11-服務(wù)器渲染技術(shù) -JSP-03-JSTL(會使用)

    JSTL 標(biāo)簽庫 是指 JSP Standard Tag Library :JSP 標(biāo)準(zhǔn)標(biāo)簽庫 EL 表達(dá)式是為了替換 jsp 中的表達(dá)式腳本, JSTL 是為了替換代碼腳本。這樣 jsp 頁面變得更佳簡潔 JSTL 由 五個(gè)標(biāo)簽庫組成 使用 JSTL,需要導(dǎo)入相關(guān)的 jar 包 注意細(xì)節(jié) ● taglib 引入標(biāo)簽,要放在行首 ● 導(dǎo)入 jstl jar 包后,要重

    2024年02月03日
    瀏覽(42)
  • JavaWeb_LeadNews_Day11-KafkaStream實(shí)現(xiàn)實(shí)時(shí)計(jì)算文章分?jǐn)?shù)

    JavaWeb_LeadNews_Day11-KafkaStream實(shí)現(xiàn)實(shí)時(shí)計(jì)算文章分?jǐn)?shù)

    Kafka Stream: 提供了對存儲與Kafka內(nèi)的數(shù)據(jù)進(jìn)行流式處理和分析的功能 特點(diǎn): Kafka Stream提供了一個(gè)非常簡單而輕量的Library, 它可以非常方便地嵌入任意Java應(yīng)用中, 也可以任意方式打包和部署 除了Kafka外, 無任何外部依賴 通過可容錯(cuò)地state, store實(shí)現(xiàn)高效地狀態(tài)操作(如windowed join和

    2024年02月09日
    瀏覽(13)
  • axios是什么?axios使用axios和ajax

    axios是什么?axios使用axios和ajax

    Axios 是一個(gè)基于 Promise 的 HTTP 客戶端,用于瀏覽器和 Node.js 環(huán)境。它是由 GitHub 用戶 mzabriskie 開發(fā)的,并且得到了廣泛的社區(qū)支持。Axios 的設(shè)計(jì)目標(biāo)是提供一種簡潔、易用且功能強(qiáng)大的 HTTP 請求方式,以替代傳統(tǒng)的 Ajax(Asynchronous JavaScript and XML)技術(shù)。 Axios 與 Ajax 的比較 Aj

    2024年04月15日
    瀏覽(29)
  • JavaWeb期末大作業(yè) Javaweb項(xiàng)目 Javaweb Servlet html

    JavaWeb期末大作業(yè) Javaweb項(xiàng)目 Javaweb Servlet html

    1.進(jìn)入之后是一個(gè)分頁查詢所有數(shù)據(jù)的內(nèi)容? 該頁面有基礎(chǔ)的增刪改查? 還有分頁查詢? 批量刪除 ?進(jìn)行條件查詢? 有什么不對的地方歡迎提出? 謝謝 ?2.增刪改查 1.添加 添加成功 2.刪除? 將剛才添加的OPPO刪除 3.修改? ? ?4.查詢的話就是主頁查詢所有? 頁面所用的是分頁查詢

    2024年02月10日
    瀏覽(22)
  • JavaWeb——1.JavaWeb概述

    JavaWeb——1.JavaWeb概述

    這是我們javaweb的第一篇文章,首先我們來介紹一下什么是Javaweb JavaWeb: 使用java語言完成服務(wù)器端程序開發(fā) 如下面這張圖所示: 可能不太好理解,那么就用通俗的語言來解釋一下。 任何的一個(gè)應(yīng)用程序,首先它會有頁面,這也就是前端的內(nèi)容;然后你可以用這個(gè)應(yīng)用程序來

    2024年02月03日
    瀏覽(13)
  • 【axios】-- axios 二次封裝

    如baseUrl,超出時(shí)間等 出于權(quán)限和安全考慮的密鑰設(shè)置到請求頭 主要針對于錯(cuò)誤的情況做全局統(tǒng)一處理 把對接口的請求封裝為一個(gè)方法 例子

    2024年02月09日
    瀏覽(112)
  • 【JavaWeb】Tomcat&JavaWeb&HTTP

    【JavaWeb】Tomcat&JavaWeb&HTTP

    Tomcat是Apache 軟件基金會(Apache Software Foundation)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun 和其他一些公司及個(gè)人共同開發(fā)而成。最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn),因?yàn)門omcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)

    2024年02月05日
    瀏覽(15)
  • Vue的Axios 的使用(axios簡介、axios與vue鉤子結(jié)合使用、實(shí)驗(yàn))全解

    Vue的Axios 的使用(axios簡介、axios與vue鉤子結(jié)合使用、實(shí)驗(yàn))全解

    什么是 Axios Axios 基本用法 Axios 與 Vue 的鉤子函數(shù)的結(jié)合使用 什么是 Axios Axios 是一個(gè)基于 Promise 語法的、用于瀏覽器和 Node.js 的 HTTP 庫。簡單的理解就是對 Ajax 的封裝,且具有易用、簡潔、高效等特點(diǎn)。 Axios 的特點(diǎn) 它本身具備以下作用: 可以從瀏覽器中創(chuàng)建 XMLHttpRequest。

    2024年02月02日
    瀏覽(17)
  • JavaWeb | 常用的HTML(JavaWeb)標(biāo)簽

    JavaWeb | 常用的HTML(JavaWeb)標(biāo)簽

    HTML ( 超文本標(biāo)記語言 ) ,構(gòu)成 網(wǎng)頁文檔 的 主要語言 。一般情況下,用戶在網(wǎng)頁上看到的文字、圖形、動畫、聲音、表格、鏈接等元素大部分都是HTML語言描述。 HTML 有 單標(biāo)簽 和 雙標(biāo)簽 。 HTML 對 大小寫不敏感 。html /html 也可以寫成:HTML /HTML 。 標(biāo)簽 有 屬性 ,如 a href=pa

    2024年02月10日
    瀏覽(12)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包