版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第一章動態(tài)網(wǎng)站開發(fā)基礎(chǔ)1課程地位PrevHTMLSQLBaseLogicJavaC#/WinFormsSTBProject1:ADO.Net+WinFormsC/SADO.Net/ThreeTierJavaScriptSQLAdvanceJavaOOPProject2:B/S.Net/OOPJSPAjax/WebServiceJSP/Servlet/JavaBean/WebServiceStruts/Hibernate/Spring/AjaxASP.NetNTCProject3:Net/JavaHR/CRM/OA/B2CB/S行業(yè)手冊2相關(guān)課程回顧為什么說HTML是靜態(tài)網(wǎng)頁技術(shù)?為什么說JavaScript是一種客戶端腳本語言?什么是多態(tài)?多態(tài)帶給我們的好處是什么?3本門課程技能結(jié)構(gòu)圖4預(yù)習(xí)檢查大家已經(jīng)學(xué)會了HTML,為什么要學(xué)習(xí)JSP?B/S程序與C/S程序?qū)Ρ鹊膬?yōu)勢有哪些?舉例說明什么是URL?5本章任務(wù)完成一個新聞發(fā)布系統(tǒng)的靜態(tài)網(wǎng)頁原型,包括如下功能:后臺管理模塊(標題錄入;文件上傳)新聞前臺顯示模塊(各級標題下的新聞顯示)能夠在Eclipse中部署運行該靜態(tài)新聞發(fā)布系統(tǒng)
6掌握B/S開發(fā)的基本概念動態(tài)網(wǎng)頁pk
靜態(tài)網(wǎng)頁B/S程序pkC/S程序B/S開發(fā)涉及的技術(shù)內(nèi)容開發(fā)JSP動態(tài)網(wǎng)站的基本步驟掌握Web系統(tǒng)的工作目錄創(chuàng)建Web工程與HTML、JavaScript文件實現(xiàn)Web工程的部署與運行進行Web系統(tǒng)的調(diào)試與排錯本章目標7為什么需要動態(tài)網(wǎng)頁靜態(tài)網(wǎng)站有哪些局限性?要完成這一切,我們需要使用動態(tài)網(wǎng)頁1、無法實現(xiàn)搜索、登錄、購買等交互功能2、無法對靜態(tài)頁面的內(nèi)容在線更新8什么是動態(tài)網(wǎng)頁生活中的動態(tài)網(wǎng)頁可以根據(jù)不同的輸入,返回不同的網(wǎng)頁,這就是動態(tài)網(wǎng)頁9怎樣實現(xiàn)動態(tài)網(wǎng)頁
Google如何保存業(yè)務(wù)數(shù)據(jù)?
Google如何實現(xiàn)業(yè)務(wù)數(shù)據(jù)的動態(tài)展示?要掌握這一切,我們首先需要了解B/S技術(shù)10為什么學(xué)習(xí)B/S技術(shù)C/S的局限性中心局域網(wǎng)特定用戶群中資源共享B/S帶給我們的全新體驗數(shù)據(jù)庫服務(wù)器學(xué)生機1學(xué)生機2學(xué)生機n需要安裝客戶端軟件Google服務(wù)器Internet全球用戶群中資源共享美國用戶中國用戶數(shù)據(jù)庫服務(wù)器無需安裝客戶端軟件11什么是B/S技術(shù)B/S是瀏覽器端/服務(wù)器端,程序完全放在服務(wù)器上,不用在瀏覽器上安裝任何文件,它是基于Internet的產(chǎn)物應(yīng)用服務(wù)器數(shù)據(jù)庫服務(wù)器IENetscapeIEInternet在應(yīng)用服務(wù)器中布署運行程序12B/S技術(shù)特點B/S中瀏覽器端與服務(wù)器端采用請求/響應(yīng)模式進行交互應(yīng)用服務(wù)器數(shù)據(jù)庫服務(wù)器IEIE解釋執(zhí)行HTML文件從服務(wù)器端檢索到的信息返回響應(yīng)客戶端的請求信息發(fā)送請求訪問數(shù)據(jù)庫返回結(jié)果運行JSP等服務(wù)器端腳本程序1用戶輸入23413B/S開發(fā)涉及的技術(shù)內(nèi)容HTMLJavaScript使用Java語言理解程序邏輯B/S開發(fā)將涉及S1、S2、Y2所學(xué)的諸多課程數(shù)據(jù)庫第一學(xué)期第二學(xué)期開發(fā)基于Struts/Spring/Hibernate/Ajax的網(wǎng)上信息發(fā)布平臺開發(fā)基于JSP/Servlet/JavaBean的網(wǎng)上交易系統(tǒng)第二學(xué)年使用JSP開發(fā)Web應(yīng)用系統(tǒng)使用Java實現(xiàn)面向?qū)ο缶幊?4小結(jié)1靜態(tài)網(wǎng)頁與動態(tài)網(wǎng)頁的主要區(qū)別?是否可以這樣說:動態(tài)網(wǎng)頁是靜態(tài)網(wǎng)頁的替代品?B/S程序與C/S程序相比,有哪些優(yōu)勢和劣勢?15開發(fā)JSP動態(tài)網(wǎng)站的步驟1、創(chuàng)建一個Web項目2、設(shè)計Web項目的目錄結(jié)構(gòu)3、編寫Web項目的代碼4、部署Web項目5、運行Web項目16創(chuàng)建一個Web項目1在菜單欄選擇:文件新建項目2在彈出的窗口中選擇:MyEclipse
J2EEProjects
WebProject3輸入Web項目名稱(設(shè)置為news),以及其余相關(guān)信息演示:創(chuàng)建一個Web項目17設(shè)計Web項目的目錄結(jié)構(gòu)WEB-INF:該目錄中內(nèi)容不能對外發(fā)布web.xml:Web應(yīng)用的初始化配置文件lib文件夾:存放以jar/zip形式表現(xiàn)的庫文件META-INF:系統(tǒng)自動生成,存放系統(tǒng)描述信息WebRoot:Web應(yīng)用的根目錄src文件夾:存放Java源文件靜態(tài)文件(包括圖片、樣式表、HTML等)存放在Web應(yīng)用的根目錄下,一般按功能以文件夾形式分類18編寫Web項目的代碼
右鍵點擊WebRoot
新建HTML:創(chuàng)建一個新的HTML文件在彈出的窗口中,選擇文件路徑、輸入文件名稱填充HTML文件內(nèi)容演示:編寫Web項目的代碼12319部署Web項目窗口首選項MyEclipseApplicationServerTomcat5:配置Tomcat點擊部署圖標
為Web項目添加web服務(wù)器選擇Tomcat5部署完成演示:部署Web項目1220運行Web項目點擊運行圖標
運行Tomcat5Tomcat5啟動服務(wù),在控制臺輸出啟動信息開啟IE窗口輸入正確的URL觀看運行結(jié)果演示:運行Web項目12321什么是URLURL:UniformResourceLocator即統(tǒng)一資源定位系統(tǒng),就是我們通常所說的網(wǎng)址URL是惟一能夠識別Internet上具體的計算機、目錄或文件位置的命名約定URL的組成:http://localhost:8080/news/index.html協(xié)議主機IP地址(有時包括端口號)主機資源的具體地址存放HTML文件的實際物理目錄在運行環(huán)境中,該路徑對應(yīng)WebRoot文件夾22小結(jié)2請說明在Eclipse環(huán)境中,開發(fā)JSP動態(tài)網(wǎng)站的具體步驟在index.html中有這樣一行代碼:
點擊該超鏈后可進入welcome.html網(wǎng)頁中請問:/sports/welcome.html是URL嗎?并說明原因<ahref="/sports/welcome.html">奧運展播</a>
23Web程序的調(diào)試與排錯在運行Web程序時,我們常犯的一些錯誤有:未啟動Tomcat服務(wù),或者沒有在預(yù)期的端口中啟動Tomcat服務(wù)未部署Web應(yīng)用,就試圖運行Web程序運行時,URL輸入錯誤存放文件的目錄無法對外引用,如:文件放入了WEB-INF、META-INF等文件夾24錯誤1:未啟動Tomcat排除錯誤:啟動Tomcat服務(wù)如果在控制臺上顯示Tomcat服務(wù)已啟動,觀察端口號是否與預(yù)期端口號一致,按照實際端口號重新運行錯誤現(xiàn)象排錯方法:檢查Tomcat服務(wù)能否正確運行12325錯誤2:未部署Web應(yīng)用排除錯誤:部署Web應(yīng)用排錯方法:檢查Web應(yīng)用是否正確部署尚未部署錯誤現(xiàn)象12326錯誤3:URL輸入錯誤排除錯誤:使用正確的URL錯誤現(xiàn)象排錯方法:檢查URLhttp://localhost:8080/news/index.html文件名稱與路徑要寫對查看菜單:項目屬性MyEclipseWebWebContext-root協(xié)議主機IP地址12327錯誤4:目錄不能被引用排除錯誤:把index.html文件拖至WebRoot文件夾下錯誤現(xiàn)象排錯方法:檢查文件的存放位置META-INF,WEB-INF文件夾下的內(nèi)容無法對外發(fā)布12328小結(jié)3運行你的web程序時,如果瀏覽器提示404錯誤,可能的原因有哪些?判斷tomcat是否啟動,或者是否在你預(yù)期的端口啟動,最簡單的方法是什么?29總結(jié)在開發(fā)Web應(yīng)用程序時,靜態(tài)文件一般存放在什么位置?以下哪些是正確的URL?1、/talk/talk1.htm2、file://3、/pub/files/foobar.txt4、5、:806、/news/welcome.html30Thankyou31第二章用集合存儲對象32回顧什么是異常?Java中,如何進行異常處理?請說明throw與throws的區(qū)別與聯(lián)系?33預(yù)習(xí)檢查List、Map是否都繼承自Collection接口?請說明集合類ArrayList與HashMap的區(qū)別?34本章任務(wù)開發(fā)一套小型的新聞管理系統(tǒng),完成如下功能:使用集合類存儲新聞標題可以對新聞標題進行增、刪、改、查使用英文名稱關(guān)聯(lián)不同的Accp學(xué)員,并實現(xiàn)對學(xué)員的增、刪、改、查操作35掌握Java集合框架的常用接口掌握常用集合類:ArrayList、LinkedList、HashMap本章目標36為什么需要集合框架學(xué)員1學(xué)員20如何存儲每天的新聞信息?如何存儲ACCP課程的代碼與課程信息,能夠通過代碼方便地獲得課程信息?如果寫程序時并不知道程序運行時會需要多少對象,或者,需要更復(fù)雜的方式存儲對象——那么,可以使用Java集合框架,來解決這類問題一維數(shù)組代碼1……代碼N課程1……課程N一一對應(yīng)新聞1……新聞N每天的新聞總數(shù)不確定,顯然無法再使用數(shù)組保存存儲一個班的學(xué)員信息,假定一個班容納20名學(xué)員37Java集合框架包含的內(nèi)容1接口CollectionListMap2具體類ListArrayListLinkedListMapHashMap3算法Java集合框架,為我們提供了一套性能優(yōu)良、使用方便的接口和類,我們不必再重新發(fā)明輪子,只需學(xué)會如何使用它們,就可以處理實際應(yīng)用中出現(xiàn)的問題了Java集合框架位于java.util包中Collections提供了對集合進行排序、遍歷等多種算法實現(xiàn)采用鍵-值對的存儲方式,長度可動態(tài)改變采用線性列表的存儲方式,長度可動態(tài)改變38List接口和ArrayList類5-1開發(fā)一套小型的新聞管理系統(tǒng),要求如下:可以存儲各類新聞標題(包含ID、名稱、創(chuàng)建者、創(chuàng)建時間)可以獲取新聞標題的總數(shù)可以逐條打印每條新聞標題的名稱存儲方式如何選擇?元素個數(shù)不確定使用集合類需要遍歷元素存儲對象如何確定?類型:新聞標題屬性:ID、名稱、創(chuàng)建者、創(chuàng)建時間39List接口和ArrayList類5-2第一步,確定存儲方式1、ArrayList類是List接口的一個具體實現(xiàn)類2、ArrayList
對象實現(xiàn)了可變大小的數(shù)組3、隨機訪問和遍歷元素時,它提供更好的性能元素1元素2元素3元素4元素5元素6元素7元素8元素9元素10當元素個數(shù)增加為11個0129345786元素1元素2元素3元素4元素5元素6元素7元素8元素9元素10元素11創(chuàng)建了一個新的數(shù)組,把原數(shù)組中元素復(fù)制進來012934578610根據(jù)下標位置訪問元素40List接口和ArrayList類5-3第二步:確定存儲對象1、創(chuàng)建類型:新聞標題2、包含屬性:ID、名稱、創(chuàng)建者、創(chuàng)建時間publicclassFirstLevelTitle{privateintid;//IDprivateStringtitleName;//名稱privateStringcreater;//創(chuàng)建者privateDatecreateTime;//創(chuàng)建時間publicFirstLevelTitle(intid,StringtitleName,Stringcreater,Date
createTime){this.id=id;this.titleName=titleName;this.creater=creater;this.createTime=createTime;}publicStringgetTitleName(){ returntitleName;}publicvoidsetTitleName(String
titleName){
this.titleName=titleName;}}41List接口和ArrayList類5-4第三步:具體實現(xiàn)1、按照順序依次添加各類新聞標題2、獲取新聞標題的總數(shù)3、根據(jù)位置獲取相應(yīng)新聞標題4、逐條打印每條新聞標題的名稱publicclassFirstLevelTitleDB1{publicstaticvoidmain(String[]args){FirstLevelTitlecar=newFirstLevelTitle(1,"汽車","管理員",newDate());FirstLevelTitletest=newFirstLevelTitle(2,"高考","管理員",newDate());ListnewsTitleList=newArrayList();newsTitleList.add(car);newsTitleList.add(test); System.out.println("新聞標題數(shù)目為:"+newsTitleList.size()+"條");print(newsTitleList);}publicstaticvoidprint(List
newsList){for(inti=0;i<newsList.size();i++){FirstLevelTitletitle=(FirstLevelTitle)newsList.get(i);System.out.println(i+1+":"+title.getTitleName());}}}123順序添加,位置從0開始新聞標題數(shù)目為:2條1:汽車2:高考控制臺輸出4從集合中取出后為Object類型,需要進行強制類型轉(zhuǎn)換42List接口和ArrayList類5-5第三步:具體實現(xiàn)1、在指定的位置添加新聞標題2、判斷是否已經(jīng)存儲了某條新聞標題3、刪除指定位置處的某一新聞標題publicclassFirstLevelTitleDB2{publicstaticvoidmain(String[]args){FirstLevelTitlecar=newFirstLevelTitle(1,"汽車","網(wǎng)站管理員",newDate());FirstLevelTitletest=newFirstLevelTitle(2,"高考","網(wǎng)站管理員",newDate());FirstLevelTitlehouse=newFirstLevelTitle(3,"房產(chǎn)","網(wǎng)站管理員",newDate());ListnewsTitleList=newArrayList();newsTitleList.add(car);newsTitleList.add(test);newsTitleList.add(2,house);if(newsTitleList.contains(test)){
System.out.println("有高考的新聞");}else{
System.out.println("沒有高考的新聞");}newsTitleList.remove(1);System.out.println("新聞標題數(shù)目為:"+newsTitleList.size()+"條");}}123在指定的位置添加元素有高考的新聞新聞標題數(shù)目為:2條控制臺輸出43小結(jié)1創(chuàng)建一個類Cat
包含屬性name,在構(gòu)造方法中進行初始化添加一個方法show(),用以打印name屬性的值創(chuàng)建一個類CatTest,添加main方法,實現(xiàn)創(chuàng)建一個ArrayList,向其中添加幾個Cat對象遍歷該集合,并且對每個Cat對象調(diào)用show()方法完整代碼實現(xiàn)44List接口和LinkedList類3-1升級這套小型的新聞管理系統(tǒng),要求如下:可以添加頭條新聞標題可以刪除末條新聞標題存儲方式如何選擇?元素個數(shù)不確定使用集合類需要在列表的頭或尾添加、刪除元素45List接口和LinkedList類3-2第一步,確定存儲方式1、LinkedList類是List接口的一個具體實現(xiàn)類2、LinkedList
類用于創(chuàng)建鏈表數(shù)據(jù)結(jié)構(gòu)3、插入或者刪除元素時,它提供更好的性能46List接口和LinkedList類3-3第二步:具體實現(xiàn)1、添加頭條、以及最末條新聞標題2、獲取頭條、以及最末條新聞標題3、刪除頭條、以及最末條新聞標題publicclassFirstLevelTitleDB3{publicstaticvoidmain(String[]args){FirstLevelTitlecar=newFirstLevelTitle(1,"汽車","管理員",newDate());FirstLevelTitlemedical=newFirstLevelTitle(2,"醫(yī)學(xué)","管理員",newDate());LinkedList
newsTitleList=newLinkedList();newsTitleList.addFirst(car);newsTitleList.addLast(medical);FirstLevelTitlefirst=(FirstLevelTitle)newsTitleList.getFirst();System.out.println("頭條的新聞標題為:"+first.getTitleName());FirstLevelTitlelast=(FirstLevelTitle)newsTitleList.getLast();System.out.println("排在最后的新聞標題為:"+last.getTitleName());newsTitleList.removeFirst();newsTitleList.removeLast();}}12347小結(jié)2創(chuàng)建一個類Stack,代表堆棧(其特點為:后進先出),添加方法add(Object
obj)、以及get(),添加main方法進行驗證,要求:使用LinkedList實現(xiàn)堆棧在向LinkedList中添加時,使用addLast方法在從LinkedList中取出時,使用removeLast方法完整代碼實現(xiàn)48Map接口和HashMap類4-1Accp學(xué)員應(yīng)聘至外企工作,每個學(xué)員都會有一個英文名稱,對應(yīng)該學(xué)員對象Jack西苑中心畢業(yè)的李明Rose西苑中心畢業(yè)的劉麗現(xiàn)在希望通過英文名稱,獲得該學(xué)員對象的詳細信息,如何實現(xiàn)?存儲方式如何選擇?元素個數(shù)不確定使用集合類通過key(英文名稱)獲得value(學(xué)員對象)存儲對象如何確定?類型:Accp學(xué)員屬性:中心名稱、姓名49Map接口和HashMap類4-2第一步,確定存儲方式1、Map接口用于維護“鍵-值對”的關(guān)聯(lián)性,可以通過鍵查找值2、HashMap是Map接口的一個具體實現(xiàn)類50Map接口和HashMap類4-3第二步:確定存儲對象1、創(chuàng)建類型:Accp學(xué)員2、包含屬性:中心名稱、姓名publicclassAccpStudent{privateStringname;//學(xué)員姓名privateStringschool;//中心名稱publicAccpStudent(Stringname,Stringschool){=name;this.school=school;}publicStringtoString(){ returnschool+"畢業(yè)的"+name;}}重寫Object的toString()方法,用于輸出調(diào)試和描述信息51Map接口和HashMap類4-4第三步:具體實現(xiàn)1、把英文名稱與學(xué)員對象按照“鍵-值對”的方式存儲在HashMap中2、分別打印鍵集、值集、以及鍵-值對集合3、判斷是否存在某個鍵,如果是,則根據(jù)鍵獲取相應(yīng)的值4、根據(jù)鍵、刪除某條記錄publicclassMapTest{publicstaticvoidmain(String[]args){
AccpStudentstudent1=newAccpStudent("李明","北京中心");
AccpStudentstudent2=newAccpStudent("劉麗","天津中心");Mapstudents=newHashMap();
students.put("Jack",student1);
students.put("Rose",student2);
System.out.println("鍵集:"+students.keySet());
System.out.println("值集:"+students.values());
System.out.println("鍵-值對集合:"+students);Stringkey="Jack";
if(students.containsKey(key))
System.out.println(students.get(key));
students.remove(key);
System.out.println("鍵-值對集合:"+students);}}123鍵集:[Jack,Rose]值集:[北京中心畢業(yè)的李明,天津中心畢業(yè)的劉麗]鍵-值對集合:{Jack=北京中心畢業(yè)的李明,Rose=天津中心畢業(yè)的劉麗}北京中心畢業(yè)的李明鍵-值對集合:{Rose=天津中心畢業(yè)的劉麗}控制臺輸出452小結(jié)3創(chuàng)建一個類Book
包含屬性:title(標題),使用構(gòu)造方法進行初始化重寫toString()方法,用以返回Title屬性的值創(chuàng)建一個類BookTest,添加main方法,要求:
使用HashMap進行存儲,鍵為Book對象的編號,值為Book對象通過某一個編號獲取Book對象,并打印該Book對象的標題完整代碼實現(xiàn)53使用集合框架注意事項ObjectObjectObject加入集合從集合中取出(Rabbit)object(Car)object(Student)objectRabbitCarStudentRabbitCarStudent任何對象加入集合類后,自動轉(zhuǎn)變?yōu)镺bject類型;取出時,需要進行強制類型轉(zhuǎn)換,恢復(fù)為特定的類型54總結(jié)2-1請給出下面Java代碼的運行結(jié)果importJava.util.*;publicclassTestMap{publicstaticvoidmain(String[]args){
AccpStudentstudent1=newAccpStudent("李明","西苑中心");
AccpStudentstudent2=newAccpStudent("劉麗","西苑中心");
AccpStudentstudent3=newAccpStudent("張娜","馬甸中心");
AccpStudentstudent4=student1;Mapstudents=newHashMap();
students.put("Jack",student1);
students.put("Rose",student2);
students.put("Mary",student3);
students.put("Rose",student4);
System.out.println("鍵集:"+students.keySet());
System.out.println("值集:"+students.values());}}鍵集:[Jack,Mary,Rose]值集:[西苑中心畢業(yè)的李明,馬甸中心畢業(yè)的張娜,西苑中心畢業(yè)的李明]55總結(jié)2-2publicclassFirstLevelTitleDB{publicstaticvoidmain(String[]args){FirstLevelTitlecar=newFirstLevelTitle(1,"汽車","管理員",newDate());FirstLevelTitletest=newFirstLevelTitle(2,"高考","管理員",newDate());ListnewsTitleList=newArrayList();newsTitleList.put(car);newsTitleList.put(test); p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程進度保證保函
- 保安人員職責(zé)保證
- 招標文件條款的深入解讀
- 不放棄工作的承諾示范
- 玉石原料購買協(xié)議
- 軟件服務(wù)及技術(shù)支持協(xié)議書
- 零件加工合同書范例
- 真情的承諾保證
- 國內(nèi)模特服務(wù)合同
- 調(diào)味品供應(yīng)合同
- 鉛鋅礦礦山供電系統(tǒng)設(shè)計與節(jié)能改造研究
- 國開可編程控制器應(yīng)用形考實訓(xùn)任務(wù)四
- DZ∕T 0211-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 重晶石、毒重石、螢石、硼(正式版)
- MOOC 作物育種學(xué)-四川農(nóng)業(yè)大學(xué) 中國大學(xué)慕課答案
- 變電站隱患排查治理總結(jié)報告
- 異彩紛呈的民族文化智慧樹知到期末考試答案2024年
- 國標《電化學(xué)儲能電站檢修試驗規(guī)程》
- 車輛救援及維修服務(wù)方案
- 三體讀書分享
- 2024年南平實業(yè)集團有限公司招聘筆試參考題庫附帶答案詳解
- 咖啡學(xué)概論智慧樹知到期末考試答案2024年
評論
0/150
提交評論