Java項目基本流程(三)

一、頁面初始化階段(加載即執行)

  1. 加載欄目列表(同步請求)

    • 發送同步 AJAX 請求到SearchChannel接口,獲取所有欄目數據。

    • 清空下拉框(.channelid)后,先添加 “全部” 選項,再循環生成各欄目對應的下拉選項(value 為欄目 ID,顯示文本為欄目名稱)。

    • 若請求失敗,彈出 “出錯啦” 提示。

初始化分頁參數定義全局變量page = 1(當前頁碼,默認第一頁)和pageSize = 4(每頁顯示 4 條數據)。

首次加載數據和分頁控件調用loadData():加載第一頁數據并渲染到表格。調用loadPage():計算總頁數并生成分頁按鈕(首頁、上一頁、頁碼、下一頁、尾頁)。

二、數據加載與展示流程(核心功能)

1. 加載數據(loadData()函數)

作用:根據當前查詢條件和分頁參數,從后端獲取數據并渲染表格。

  • 收集查詢條件:獲取下拉框選中的channelid(欄目 ID)、輸入框的title(標題關鍵詞)和author(作者關鍵詞)。

  • 發送請求:向SearchContent接口發送 GET 請求,攜帶參數(channelidtitleauthorpagepageSize)。

  • 渲染表格

    • 若請求成功,從返回數據中提取列表arr,清空表格 tbody 后,循環生成表格行。

    • 每行包含:復選框、ID、欄目名稱、標題、創建時間(只顯示日期部分)、作者、圖片、修改 / 刪除按鈕。

  • 若請求失敗,彈出 “出錯啦” 提示。

2. 加載分頁控件(loadPage()函數)

作用:根據查詢條件計算總頁數,動態生成分頁按鈕。

  • 收集查詢條件:與loadData()一致(channelidtitleauthor)。

  • 發送請求:向GetCount接口發送 GET 請求,獲取符合條件的總數據條數。

  • 生成分頁按鈕

    • 計算總頁數:count = 總條數 / pageSize(向上取整)。

    • 清空分頁容器(.page)后,依次添加 “首頁”“上一頁” 按鈕,再循環生成頁碼按鈕(默認第一頁高亮),最后添加 “下一頁”“尾頁” 按鈕。

三、交互控制流程(用戶操作響應)

1. 搜索按鈕點擊(.search點擊事件)

  • 重置當前頁碼為page = 1(回到第一頁)。

  • 調用loadData():根據新條件加載第一頁數據。

  • 調用loadPage():根據新條件重新計算總頁數并更新分頁按鈕。

2. 分頁操作(頁碼、首頁、尾頁、上下頁點擊)

所有分頁操作都會同步更新數據分頁按鈕樣式

  • 點擊頁碼(.item點擊事件)

    • page設為點擊的頁碼值,調用loadData()加載對應頁數據。

    • 高亮當前頁碼按鈕,移除其他頁碼的高亮樣式。

  • 點擊首頁(.first點擊事件)

    • page設為 1,調用loadData()加載第一頁數據。

    • 高亮第一個頁碼按鈕。

  • 點擊尾頁(.last點擊事件)

    • page設為總頁數(.item的數量),調用loadData()加載最后一頁數據。

    • 高亮最后一個頁碼按鈕。

  • 點擊上一頁(.prev點擊事件)

    • 若當前是第一頁,彈出提示并終止操作;否則page減 1,調用loadData()加載上一頁數據。

    • 高亮當前頁碼對應的按鈕。

  • 點擊下一頁(.next點擊事件)

    • 若當前是最后一頁,彈出提示并終止操作;否則page加 1,調用loadData()加載下一頁數據。

    • 高亮當前頁碼對應的按鈕。

一、Servlet 核心流程

  1. 請求處理入口

    • Servlet 通過?doGet/doPost?方法接收前端請求,是 Java Web 處理 HTTP 請求的基礎入口

    • 需掌握?HttpServletRequest(獲取參數)、HttpServletResponse(設置響應、輸出數據)的核心 API

  2. 參數獲取

    • request.getParameter("xxx"):獲取前端通過 URL 或表單傳遞的參數

    • 注意參數為空判斷(null?或空字符串),避免空指針異常

二、數據庫操作與 SQL 拼接

  1. 動態 SQL 拼接

    • 根據前端條件(欄目、標題、作者等)動態拼接?WHERE?子句,實現條件查詢

    • 分頁實現:LIMIT (page-1)*pageSize, pageSize,需掌握 MySQL 分頁語法

  2. 多表聯查

    • SELECT content.*,channelname FROM content,channel WHERE content.channelid=channel.id

    • 關聯查詢需注意表連接條件(content.channelid=channel.id),避免笛卡爾積

  3. 工具類封裝

    • MysqlUtil.getJsonBySql(sql, columns):封裝數據庫查詢、結果集轉 JSON 的邏輯

    • 需理解工具類如何執行 SQL、遍歷?ResultSet、拼接 JSON 字符串

三、前后端交互規范

  1. 響應格式與編碼

    • response.setContentType("text/json;charset=utf-8"):固定響應為 JSON 格式,UTF-8 編碼防亂碼

    • 前端通過 AJAX 接收 JSON 數據,需對應解析渲染

  2. 請求協同

    • 前端 AJAX 請求(SearchChannel/SearchContent)與后端 Servlet 路由一一對應

    • 參數命名規范:前后端保持一致(如?channelid/title

四、功能模塊實現

  1. 分頁邏輯

    • 前端傳遞?page/pageSize,后端計算偏移量?(page-1)*pageSize

    • 結合?LIMIT?實現分頁,需理解頁碼與數據區間的映射關系

  2. 數據渲染閉環

    • 后端查詢結果 → 轉 JSON → 前端接收 → 動態渲染表格 / 下拉框

    • 掌握前端 jQuery 動態拼接 DOM(如?append?生成表格行)與后端數據返回的協同

  • 同步請求(Synchronous Request)
    指任務按照順序執行,前一個任務完成后,后一個任務才能開始。發起請求后,發起方會阻塞等待響應結果,期間無法執行其他操作。
    類比:打電話時,必須等對方接電話并回應后,才能繼續下一步交流,過程中不能同時處理其他事情。

  • 異步請求(Asynchronous Request)
    指任務無需等待前一個任務完成即可執行,發起請求后,發起方不會阻塞,而是繼續處理其他任務,待請求結果返回后,再通過回調、事件等方式處理響應。
    類比:發郵件時,發送后無需等待對方回復,可以繼續做其他事,收到回復后再查看即可。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/918411.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/918411.shtml
英文地址,請注明出處:http://en.pswp.cn/news/918411.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

鷓鴣云光伏仿真:項目前期決策的“數據明燈”

曾有一處光伏項目,在精心籌備數月后終于建成,卻在運行初期即因未充分評估山體遮擋影響,導致實際發電量較預期大幅降低近一成。前期決策中的微小疏漏,往往成為項目經濟性與可行性的致命傷。而鷓鴣云光伏仿真軟件正是一盞照亮前路的…

開發指南129-基礎類-BaseController

所有接口都需要繼承BaseControllerBaseController里有很多有用的方法,現舉例最重要的幾個:1、getURI返回接口地址,就是PostMapping或GetMapping中定義的接口地址。常用于返回值中,例如接口的異常處理:try {// 處理邏輯…

C++高頻知識點(十八)

文章目錄86. C多線程中,鎖的實現方式有哪些?1. 互斥鎖(Mutex)2. 遞歸互斥鎖(Recursive Mutex)3. 讀寫鎖(Shared Mutex)4. 自旋鎖(Spinlock)5. 條件變量&#…

【C語言強化訓練16天】--從基礎到進階的蛻變之旅:Day1

🔥個人主頁:草莓熊Lotso 🎬作者簡介:C研發方向學習者 📖個人專欄: 《C語言》 《數據結構與算法》《C語言刷題集》《Leetcode刷題指南》 ??人生格言:生活是默默的堅持,毅力是永久的…

【軟考中級網絡工程師】知識點之 TCP 協議深度剖析

目錄一、TCP 協議簡介二、TCP 協議的特點2.1 面向連接2.2 可靠性高2.3 擁塞控制2.4 全雙工通信2.5 高效性2.6 支持多種應用協議2.7 可靠的錯誤恢復三、TCP 協議的工作機制3.1 三次握手建立連接3.2 數據傳輸3.3 四次揮手關閉連接四、TCP 協議的數據包格式五、TCP 協議在實際應用…

操作系統1.5:操作系統引導

目錄 總覽 什么是操作系統引導? 磁盤里邊有哪些相關數據? 操作系統引導(開機過程) 總覽 什么是操作系統引導? 操作系統引導(boot)——開機的時候,怎么讓操作系統運行起來? 磁盤里邊有哪些相關數據? 一個剛買來的磁盤(硬…

[鷓鴣云]光伏AI設計平臺解鎖電站開發新范式

1.[鷓鴣云]平臺概述[鷓鴣云]是由鷓鴣云(徐州)信息技術有限公司傾力打造的,可以媲美?PVsyst的光伏AI設計平臺。它為光伏項目不同階段的開發提供了快速設計、衛星地圖設計、無人機3D設計、Unity3D設計、專業繪圖設計與場區設計多種設計方式&am…

docker compose和docker-compose命令的區別

Docker Compose 有兩種命令形式:docker compose(空格連接)docker-compose(短橫線連接)其核心區別如下:一、技術特性docker-compose(短橫線)獨立可執行文件:作為獨立程序安…

基于Strands Agent開發輔助閱讀Agent

序 本篇由來,在COC上我當面感謝了組委會和姜寧老師,隨即被姜寧老師催稿,本來當天晚上寫了一個流水賬,感覺甚為不妥。于是決定慢慢寫,緩緩道來。要同時兼顧Show me the code,Show me the vide。希望能形成一…

20250807簡單樹上問題

引入 樹是一種特殊的圖,因其看起來像一顆倒掛的樹而得名。 樹有許多等價的形式化定義,我們這里只取一個:nnn個點n?1n-1n?1條邊的無向連通圖。 樹的直徑 定義樹上任意兩點之間最長的簡單路徑為樹的直徑。 一棵樹可能有很多直徑&#xff0c…

諾基亞就4G/5G相關專利起訴吉利對中國汽車及蜂窩模組企業的影響

諾基亞于2025年7月18日向歐洲統一專利法院(UPC)曼海姆分庭和德國慕尼黑法院提起訴訟,控訴中國吉利控股集團及其極氪、領克、路特斯、Smart等關聯品牌在未經許可的情況下使用諾基亞4項蜂窩通信標準必要專利 。涉案專利包括1項覆蓋4G/5G的標準必…

Kotlin反射詳解

反射是一種機制,它允許我們在運行時檢查、修改和操作類或對象的內部結構。反射開啟了動態編程的可能性,在開發庫、框架或工具等場景中非常有用。Java 中的反射 在 Java 中,反射一直是實現動態編程的重要基石。它允許開發者在不提前知道類名的…

學習嵌入式-IMX6ULL學習——中斷

volatile:易變的,防止系統優化對寄存器做處理的時候使用,在進行寫1清零操作時,防止該操作被系統優化;一、GIC通用中斷控制器1.GIC通用中斷控制器GIC接收眾多外部中斷,然后對其進行處理,最終通過…

HENGSHI SENSE 6.0 功能-AI 查數助手

面向所有AI Agent開放BI和數據分析能力 AI 查數助手 6.0版本中,我們AI助手的優化是比較深入且全面的。從問答效率到集成能力,都得到了大的躍升,是智能問數應用場景的重大升級以及體驗的全方位優化。我們優化了 AI 助手執行流程,…

降壓型DCDC電源芯片推薦-芯伯樂XBL4001 40V/5A

在電子設備不斷追求高性能與低功耗的今天,電源管理芯片的重要性不言而喻。芯伯樂主推的XBLW-XBL4001芯片,憑借其出色的設計與穩定的性能,為電源管理領域帶來了一款實用的新選擇。一、芯片概述XBLW-XBL4001是一款降壓型(Buck&#…

uni-app app端安卓和ios如何申請麥克風權限,喚起提醒彈框

代碼包含功能如下: 1、判斷推送權限是否開啟 2、判斷定位權限是否開啟 3、判斷麥克風權限是否開啟 4、判斷相機權限是否開啟 5、判斷相冊權限是否開啟 6、判斷通訊錄權限是否開啟 7、判斷日歷權限是否開啟 8、判斷備忘錄權限是否開啟 9、Android權限查詢 10、檢查系…

關于 Rust 異步(無棧協程)的相關疑問

這是一個記錄問題求助的文章。關于 waker 與運行時的合作方式我膚淺地學習了 Rust 異步底層實現原理,關于 Future、waker 和運行時等。關于 waker 我有三點猜測:waker 是由實現執行器的人提供的在執行器中會調用 epoll_wait,epoll 返回 fd&am…

stm32項目(25)——基于stm32的植物生長箱環境監測系統

1.實現功能 測 環境溫濕度、光照強度、土壤濕度、水箱水位 手機APP顯示 溫度過低-->打開加熱板 濕度過低-->打開水泵 土壤濕度低-->開水泵 --->只要有指標低于閾值時 就蜂鳴器報警 光強弱-->補光 水位低-->抽水 OLED屏幕實時顯示各種信息 分…

golang 基礎案例_02

1.鎖有時候我們的代碼中可能會存在多個 goroutine 同時操作一個資源(臨界區)的情況,這種情況下就會發生競態問題(數據競態)。(1)、互斥鎖;(2)、讀寫互斥鎖;(3)、sync.WaitGroup;(4)、…

C++算法·前綴和

前綴和(Prefix(Prefix(Prefix Sum)Sum)Sum)的定義 前綴和是一種高效處理區間求和問題的算法技巧 其核心思想是通過預處理構建一個前綴和數組 使得后續的區間和查詢可以在常數時間O(1)O(1)O(1)內完成 核心概念 定義 給定一個數組a[1...n]a[1...n]a[1...n],其前綴和數組s[1...…