freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android手機的文件傳輸系統(tǒng)-在線瀏覽

2025-01-15 15:38本頁面
  

【正文】 模塊二 Ijetty servlet 容器 : HTTP 服務(wù)和 servlet 容器協(xié)同工作,使 Jetty 成為動態(tài)的 web 服務(wù)器 jetty client 組件 : 可以方便的向 web服務(wù)器發(fā)送 HTTP請求和處理HTTP 響應(yīng) 異步 servlet: 允許在某個時刻掛起當前請求,釋放被綁定的線程,然后當該請求被執(zhí)行時, Jetty 會分配一個線程來繼續(xù)該請求 HTTP 服務(wù) : 進一步成為 web 容器,來提供動態(tài)的 HTTP 內(nèi)容 模塊一 PC 端 首頁( Index): 文件傳輸系統(tǒng)首頁 添加文件( Add File): 添加需傳送給手機的文件 上傳處理 (Uploadservlet): 處理上傳功能 上傳成功 (): 顯示成功的結(jié)果 上傳失敗 ( ): 發(fā)生異常的結(jié)果 工程化綜合訓(xùn)練報告書 12 [系統(tǒng)模塊 1] [系統(tǒng)模塊 2] [系統(tǒng)模塊 3] [功能需求 1] √ [功能需求 2] √ [功 能需求 3] √ 表 功能需求與程序的關(guān)系表 對個人分工模塊進行檢查以及出錯信息采集,發(fā)現(xiàn)問題之后首先做記錄,然后報給設(shè)計人員進行更改,力求更完善的系統(tǒng)。 b. 降效技術(shù)說明準備采用的后備技術(shù),使用另一個效率稍低的系統(tǒng)或方法來求得所需結(jié)果的某些部分 。 模塊 三 手機 端 熱點共享: 打開手機端熱點,讓 PC 端接入使它們處于同一局域網(wǎng)內(nèi) 打開 Ijetty 服務(wù)器: 打開 Ijetty 服務(wù)器,按“ start”進入。 工程化綜合訓(xùn)練報告書 13 閩江學(xué)院 工程化綜合訓(xùn)練 基于 B/S 架構(gòu)的手持機文件傳輸功能( Android) 詳細設(shè)計說明書 成 員: 120202001211 吳輝 120202001212 薛丹丹 120202001229 王楷木 120202001230 周俊杰 指導(dǎo)教師: 陳新偉 陳靖 2020 年 11 月 4 日 本說明書的編寫是為了讓開發(fā)人員 詳細了解 基于 B/S 架構(gòu)的手持機文件傳輸功能( Android) 。 同時作為測試人員的參考資料使用 。 背景 ? 項目名稱: 基于 B/S 架構(gòu)的手持機文件傳輸功能( Android) ? 項目功能: 本軟件運行在 PC( Windows 系統(tǒng))與 android 手機上, PC必須與 android 手機在同一個局域網(wǎng)內(nèi)。文件大小不超過 10M,但為方便檢驗與傳輸,建議文件類型為圖片或文檔類。 ? 最終用戶: 面向 Android 手機用戶 B/S 架構(gòu):( Browser/Sever,瀏覽器 /服務(wù)器模 式),是 WEB 興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式, WEB 瀏覽器是客戶端最主要的應(yīng)用軟件。 文件傳輸: File transfer 通過 局域網(wǎng) 連接從遠地站點 (remote site)向 本地主機 (local host)復(fù) 制文件 。 檢查文件是否上傳成功: 如果文件上傳成功,在手機 SD 卡上能找到對應(yīng)文件。 // 狀態(tài)碼,表示沒有特殊操作 final int DATAHEADER = 1。 // 表示下面要讀的是上傳文件和二進制數(shù)據(jù) final int FIELDDATA = 3。 // 容納請求消息實體的字節(jié)數(shù)組 byte[] b = new byte[totalbytes]。 String fieldname = 。 // 表單域的值 String filename = 。 //分界符字符串 String lastboundary = 。 // 文件長度 // 容納表單域的名稱 /值的哈希表 Hashtable formfields = new Hashtable()。 工程化綜合訓(xùn)練報告書 23 if (pos != 1) { pos += boundary=.length()。 // 解析出分界符 lastboundary = boundary + 。 // 起始狀態(tài)為 NONE // 得到請求消息的數(shù)據(jù)輸入流 DataInputStream in = new DataInputStream(())。 // 根據(jù)長度,將消息實體的內(nèi)容讀入字節(jié)數(shù)組 b 中 ()。 // 從字節(jié)數(shù)組中得到表示實體字符串 // 從字符串中得到輸出緩沖流 BufferedReader reqbuf = new BufferedReader(new StringReader(reqcontent))。 int i = 0。 if (s == lastboundary || s == null) break。 i += 1。 case DATAHEADER: pos = (filename=)。 pos += name=.length() + 1。 int l = ()。 fieldname = s。 //設(shè)置狀態(tài)碼,準備讀取表單域的值 } else { // 如果是文件數(shù)據(jù)的頭,先存儲這一行,用于在字節(jié)數(shù)組中定位 String temp = s。 pos += filename=.length() + 1。 int l = ()。 pos = (\\)。 filename = s。 pos = byteIndexOf(b, temp, 0)。 // 再讀一行信息,是這一部分數(shù)據(jù)的 Contenttype s = ()。 DataOutputStream fileout = newDataOutputStream(new FileOutputStream(f))。 pos = byteIndexOf(b, boundary, 0)。 //取得文件數(shù)據(jù) (b, 0, 1)。 //文件長度存入 fileSize state = FIELDDATA。 case FIELDDATA: // 讀取表單域的值 s = ()。 // 存入 fieldvalue (fieldname, fieldvalue)。 break。amp。 if ((boundary)) { state = DATAHEADER。 } } break。 } catch (Exception e) { (/).forward(request, response)。 工程化綜合訓(xùn)練報告書 26 } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response)。 } /** * 字節(jié)數(shù)組中的 indexOf 函數(shù),與 String 類中的 indexOf 類似 b 要搜索的字節(jié)數(shù)組 s 要找的字節(jié)數(shù)組 start 搜索的起始位置 * 如果找到,返回 s 的第一個字節(jié)在 b 中的下標,沒有則返回 1 */ private static int byteIndexOf(by
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1