版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、JSP動(dòng)態(tài)Web技術(shù)深圳職業(yè)技術(shù)學(xué)院軟件技術(shù)專業(yè)JSP概述內(nèi)容提要4教學(xué)目標(biāo)1235認(rèn)識(shí)JSP安裝配置JSP運(yùn)行環(huán)境開發(fā)JSP總結(jié)與提高基本教學(xué)要求職業(yè)素質(zhì)要求: 守時(shí)、保質(zhì)、保量、溝通、協(xié)作;課堂要求: 按時(shí)出勤,有事請(qǐng)假、和教師配合、有禮貌、師生相互尊重、上課關(guān)手機(jī);上課最基本的要求: 必須帶教材、課堂筆記、筆作業(yè)要求: 按時(shí)交作業(yè)、規(guī)范、保質(zhì)課程考核本課程考察的重點(diǎn):Web編程能力學(xué)期成績平時(shí)成績單元項(xiàng)目成績綜合項(xiàng)目成績課程設(shè)計(jì)成績 平時(shí)成績:20單元項(xiàng)目成績:30綜合項(xiàng)目成績:10課程設(shè)計(jì)成績:40教學(xué)方法 項(xiàng)目引入預(yù)備知識(shí)項(xiàng)目實(shí)現(xiàn)知識(shí)拓展項(xiàng)目牽引講、學(xué)、做結(jié)合實(shí)戰(zhàn)演習(xí)靈活運(yùn)用,知識(shí)點(diǎn)
2、整合知識(shí)點(diǎn)儲(chǔ)備(必須掌握)了解課程本門課程目標(biāo):掌握利用JSP的Web開發(fā)技術(shù);學(xué)會(huì)開發(fā)一般B/S模式的項(xiàng)目;JavaJbuilder/EclipseJSPStruts框架技術(shù)Spring/Hibernate等技術(shù)教學(xué)項(xiàng)目動(dòng)態(tài)班級(jí)網(wǎng)站;學(xué)生信息管理系統(tǒng)(B/S)版;新聞發(fā)布系統(tǒng);網(wǎng)上購物系統(tǒng);在線投票系統(tǒng)留言板教學(xué)目標(biāo) 了解JSP技術(shù)的特點(diǎn)以及JSP程序的結(jié)構(gòu)及運(yùn)行原理;掌握J(rèn)SP網(wǎng)站運(yùn)行環(huán)境的配置;掌握在Eclipse環(huán)境中開發(fā)JSP程序的方法。JSP概述概念和意義操 作使 用動(dòng)態(tài)Web技術(shù)工作原理JSP技術(shù)的特點(diǎn)JSP運(yùn)行環(huán)境的設(shè)置JSP開發(fā)環(huán)境配置JSP工程的創(chuàng)建JSP程序運(yùn)行與調(diào)試靜態(tài)
3、VS動(dòng)態(tài)網(wǎng)頁靜態(tài)網(wǎng)頁HTML格式的網(wǎng)頁通常被稱為“靜態(tài)網(wǎng)頁”,早期的網(wǎng)站一般都是由靜態(tài)網(wǎng)頁制作的。沒有后臺(tái)數(shù)據(jù)庫、不含程序和不可交互的網(wǎng)頁。你編的是什么它顯示的就是什么、不會(huì)有任何改變。靜態(tài)網(wǎng)頁相對(duì)更新起來比較麻煩,適用于一般更新較少的展示型網(wǎng)站。 動(dòng)態(tài)網(wǎng)頁 我的博客:/u/12453709573)JSP動(dòng)態(tài)網(wǎng)站: /index.jsp /comminfo/index.jsp動(dòng)態(tài)網(wǎng)頁是以.asp、.jsp、.php、.perl、.cgi等形式為后綴,一般以數(shù)據(jù)庫技術(shù)為基礎(chǔ),采用動(dòng)態(tài)網(wǎng)頁技術(shù)的網(wǎng)站可以實(shí)現(xiàn)更多的功能,如用戶注冊(cè)、用戶登錄、在線調(diào)查、用戶管理、訂單管理等等;當(dāng)用戶請(qǐng)求時(shí)服務(wù)器才返回
4、一個(gè)完整的網(wǎng)頁;動(dòng)態(tài)網(wǎng)站效果圖Web 應(yīng)用程序Web 應(yīng)用程序Web 應(yīng)用程序在 Web 服務(wù)器上運(yùn)行 Web 應(yīng)用程序的優(yōu)點(diǎn): 訪問 Web 應(yīng)用程序更容易 維護(hù)和部署成本低 播放一首歌作為響應(yīng)用戶請(qǐng)求播放一首歌認(rèn)識(shí)JSPJava 服務(wù)器頁面 (Java Server Page ,JSP) 以擴(kuò)展名 .jsp 保存有效地控制動(dòng)態(tài)內(nèi)容生成在Java Server Page里面使用 Java 編程語言和類庫HTML 用于表示頁面,而 Java 代碼用于訪問動(dòng)態(tài)內(nèi)容JSP 使用 Java 訪問動(dòng)態(tài)內(nèi)容JSP 頁面Java服務(wù)器搭建JSP運(yùn)行環(huán)境所必需軟件:JDK+服務(wù)器+編輯工具JDK:不同版本,
5、如JDK1.4服務(wù)器:Tomcat、WebLogic、Websphere、 Apusic Application Server等編輯工具:記事本、Dreamweaver、Editplus等集成開發(fā)環(huán)境:Jbuilder、Eclipse等開發(fā)JSP程序顯示當(dāng)前時(shí)間現(xiàn)在時(shí)間是演示示例程序改寫 Jbuilder新建JSP文件:first.jspDreaweaver設(shè)計(jì)頁面,編寫代碼運(yùn)行改寫:%int i, sum=0; for(i =1; i 認(rèn)識(shí)JSP 頁面元素JSP 頁面的元素靜態(tài)內(nèi)容指 令表達(dá)式ScriptletJSP 頁面HTML靜態(tài)文本以“ ” 結(jié)束。比如:聲 明動(dòng)作以“jsp: 動(dòng)作名
6、” 開始,以“ ” 結(jié)束比如:注釋動(dòng)手開發(fā)DIY你好, ,歡迎光臨我的網(wǎng)站。你剛才輸入的密碼是演示示例JSP 執(zhí)行過程客戶端JSP 頁面3執(zhí)行2轉(zhuǎn)譯編譯1Servlet請(qǐng)求響應(yīng)JSP 執(zhí)行過程JSP 的優(yōu)點(diǎn)強(qiáng)調(diào)可重用組件JSP 頁面 1靜態(tài)內(nèi)容動(dòng)態(tài)內(nèi)容JSP 頁面 2靜態(tài)內(nèi)容動(dòng)態(tài)內(nèi)容JSP 頁面 3靜態(tài)內(nèi)容動(dòng)態(tài)內(nèi)容JavaBean多個(gè) JSP 頁面使用相同的 JavaBeanJSP 的優(yōu)點(diǎn)簡化頁面開發(fā)Web 設(shè)計(jì)人員和 Web 程序員使用 Web 開發(fā)工具開發(fā) JSP 頁面JSP 頁面靜態(tài)內(nèi)容動(dòng)態(tài)內(nèi)容Web 開發(fā)工具M(jìn)acromedia DreamweaverEclipse/JBuilder
7、頁面設(shè)計(jì)人員 JSP 程序員總 結(jié)JSP 頁面使用 HTML 顯示靜態(tài)內(nèi)容,并使用 Java 代碼生成動(dòng)態(tài)內(nèi)容JSP 頁面的元素為靜態(tài)內(nèi)容、JSP 指令、JSP 表達(dá)式、JSP Scriptlet和注釋可以使用標(biāo)準(zhǔn)開發(fā)工具創(chuàng)建 JSP 頁面JSP 使用可重用的跨平臺(tái)組件(如 JavaBean)JSP 允許創(chuàng)建自定義標(biāo)簽,使 JSP 開發(fā)更容易JSP 執(zhí)行過程的各個(gè)階段為轉(zhuǎn)譯、編譯和執(zhí)行JSP動(dòng)態(tài)Web技術(shù)深圳職業(yè)技術(shù)學(xué)院軟件技術(shù)專業(yè)JSP語法與內(nèi)置對(duì)象內(nèi)容提要4JSP語法1235主題網(wǎng)站網(wǎng)上調(diào)查內(nèi)置對(duì)象總結(jié)與提高學(xué)習(xí)目標(biāo)掌握J(rèn)SP的基本語法熟練使用JSP內(nèi)置對(duì)象掌握J(rèn)SP開發(fā)環(huán)境JSP內(nèi)置對(duì)象
8、概念和意義操 作使 用JSP基本語法JSP內(nèi)置對(duì)象JSP的語法規(guī)范常用內(nèi)置對(duì)象應(yīng)用主題網(wǎng)站設(shè)計(jì)網(wǎng)上調(diào)查智力測驗(yàn)稱蘋果 有十筐蘋果,每筐里有十個(gè),共 100個(gè),其中有九筐每個(gè)蘋果的重量都是1斤,另一筐中每個(gè)蘋果的重量都是0.9斤,但是外表完全一樣,用眼看或用手摸無法分辨?,F(xiàn)在要你用一臺(tái)普通的大秤一次把這筐重量輕的找出來。 項(xiàng)目引入:主題網(wǎng)站預(yù)備知識(shí)page指令實(shí)例: 作用:指定JSP頁面的格式和文字編碼(JSP程序必需);實(shí)例: 作用:為JSP頁面引入java核心包中的類,可指定多個(gè)值??偨Y(jié):page指令用來定義整個(gè)JSP頁面的一些屬性和這些屬性的值。預(yù)備知識(shí)靜態(tài)include指令格式:說明:文
9、件可以是下列格式:HTML文件;JSP文件;文本文件;Java文件分析:被插入的文件是彼此獨(dú)立完整的文件嗎?總結(jié):把一個(gè)文件插入到當(dāng)前JSP頁面,合并成一個(gè)新的JSP頁面知識(shí)儲(chǔ)備JSP注釋JSP程序注釋 格式: 注意:在注釋內(nèi)容中,可以出現(xiàn)除-%之外的任何內(nèi)容,若需使用,必須使用轉(zhuǎn)義字符“-%”表示客戶端注釋 格式: 客戶端動(dòng)態(tài)注釋: 格式: !- - 靜態(tài)注釋內(nèi)容靜態(tài)注釋內(nèi)容 - -客戶端注釋嵌入動(dòng)態(tài)數(shù)據(jù),動(dòng)態(tài)數(shù)據(jù)通過表達(dá)式來表示客戶端注釋是指在客戶端HTML源碼中顯示的注釋,JSP引擎不做任何解釋,直接輸出到客戶端HTML源碼 JSP程序注釋是對(duì)JSP程序進(jìn)行的注釋,服務(wù)器不會(huì)將其發(fā)送到客
10、 戶端JSP 表達(dá)式示例 JSP表達(dá)式 PI 的值: 100,99中最大的值 : 100,99中最小的值 : 3+2-5的值 : (3+2)=5的值 : (3+2)!=5的值 :表達(dá)式演示:java表達(dá)式使用JSP 表達(dá)式進(jìn)行JSP編程JSP 頁面元素 示例JSP聲明Java程序片JSP 指令JSP 頁面元素JSP 頁面的元素靜態(tài)內(nèi)容指 令表達(dá)式Java程序JSP 頁面HTML靜態(tài)文本以“ ” 結(jié)束。比如:聲 明動(dòng)作以“jsp: 動(dòng)作名 ” 開始,以“ ” 結(jié)束比如:注釋實(shí)例分析分析程序:count.jsp :計(jì)數(shù)器 變量聲明程序max.jsp:比較大小 局部變量聲明 表達(dá)式circle_ca
11、l.jsp:計(jì)算圓周長、面積 定義類、方法的程序time.jsp:顯示當(dāng)前日期,以中文方式顯示 類的使用總結(jié):變量聲明(局部、全局)、方法聲明、聲明類拓展提高:編寫程序,計(jì)算1-10的和項(xiàng)目實(shí)現(xiàn)新建工程新建Web Applicationhtml文件:head.html、welcome.html、special.htm、connectus.htm運(yùn)用“include”指令,組合頁面: JSP文件:welcome.jsp、 special.jsp、 connectus.jsp調(diào)試、運(yùn)行項(xiàng)目功能改進(jìn)請(qǐng)大家完成練習(xí)思路:減少JSP文件個(gè)數(shù);超級(jí)鏈接的附帶參數(shù);實(shí)現(xiàn)方法:鏈接方式:修改head.htm文
12、件:專業(yè)首頁獲取鏈接地址:修改index.jsp文件:request.getParameter(choice);Include指令加載文件功能實(shí)現(xiàn):Form表單參數(shù)如下:ACTION:表單處理方式,指定數(shù)據(jù)傳送“目的地”METHOD:數(shù)據(jù)傳輸方式,如post或get方法;ENCTYPE:傳送表單數(shù)據(jù)的編碼方式Form標(biāo)記分析:傳遞數(shù)據(jù)嗎?內(nèi)置對(duì)象JSP 頁面隱式對(duì)象客戶端響應(yīng)請(qǐng)求 響應(yīng)請(qǐng)求服務(wù)器 request內(nèi)置對(duì)象方法:getParameter(String s)作用:獲取客戶提交的信息;使用:reques. getParameter(String s);分析:“s”是表單控件的名稱;實(shí)例
13、練習(xí):獲取用戶提交數(shù)據(jù)的程序:request.jsp分析:如果輸入中文,出現(xiàn)什么情況JSP 頁面request 對(duì)象客戶端請(qǐng)求信息表示并存儲(chǔ)客戶端的請(qǐng)求請(qǐng)求服務(wù)器中文亂碼處理處理思想:首先,將獲取的字符串用ISO-8859-1進(jìn)行編碼,并 將編碼存放到一個(gè)字節(jié)數(shù)組中String str=request.getParameter(“s”);byte b=str.getBytes(“ISO-8859-1”);Str=new String(b);簡寫為:String str=new String(request.getParameter(“s”). getBytes(“ISO-8859-1”);使用
14、request對(duì)象的其他問題實(shí)例:文本框中輸入一個(gè)數(shù)字,計(jì)算其平方根代碼1:的平方根是:代碼2:的平方根是:代碼3:=0) result=Math.sqrt(data3); %的平方根是: 請(qǐng)輸入一個(gè)整數(shù)代碼4(最終版):=0) result=Math.sqrt(data3);% 的平方根是: 請(qǐng)輸入一個(gè)正數(shù) 請(qǐng)輸入數(shù)字字符forward動(dòng)作標(biāo)簽格式: 作用: 從該指令處停止當(dāng)前頁面的繼續(xù)執(zhí)行,而轉(zhuǎn)向其他JSP頁面。程序分析:forward.jsp0.5) % param動(dòng)作標(biāo)簽格式: 作用: 該標(biāo)簽可以與jsp:forward或者jsp:include標(biāo)簽一起使用,可以將param標(biāo)簽中的值
15、傳遞到include指定或者forward指令要加載/轉(zhuǎn)向的頁面中。 jsp:param name=number value= / 您傳過來的數(shù)值是: 項(xiàng)目引入網(wǎng)上調(diào)查新建工程頁面設(shè)計(jì):index.htm、newsselect.jsp、newsok.jsp預(yù)備知識(shí)session內(nèi)置對(duì)象Cookie:是一條極為短小的信息,能夠被網(wǎng)站自動(dòng)地放置在一臺(tái)電腦的硬盤中。通過Cookie,網(wǎng)站可以識(shí)別你是第一次訪問,或是又一次訪問它。會(huì)話:從一個(gè)客戶打開瀏覽器并連接到服務(wù)器開始,到客戶關(guān)閉瀏覽器離開服務(wù)器結(jié)束,成為一個(gè);Session用來保存客戶端狀態(tài)信息;客戶端的每次訪問都把上次的session記錄傳遞
16、給Web Server;Web Server讀取客戶端提交的session來獲取客戶端的狀態(tài)信息;session常用方法public void setAttribute(String key,Object obj); 將Object指定的對(duì)象obj添加到session對(duì)象中,并為添加的對(duì)象指定一個(gè)索引關(guān)鍵字;public Object getAttribute(String key); 獲取session對(duì)象中含有關(guān)鍵字是key的對(duì)象,由于任何對(duì)象都可以添加到session對(duì)象中,取回對(duì)象時(shí),應(yīng)強(qiáng)制轉(zhuǎn)化為原來類型。session.getId();獲取session對(duì)象的編號(hào) 類似方法: ses
17、sion.putValue(namesex,name+sex); String namesex=(String) session.getValue(namesex); 課堂練習(xí):購物車程序session_shop01.jsp:輸入姓名session_shop02.jsp:獲取姓名,輸入商品session_shop03.jsp:顯示姓名、商品application對(duì)象 生命周期:服務(wù)器啟動(dòng)服務(wù)器關(guān)閉 所有客戶的application對(duì)象都是同一個(gè)。 例如:聊天室程序、計(jì)數(shù)器程序、留言板程序。 所有客戶共享一個(gè)application對(duì)象常用方法:getAttribute(String name)s
18、etAttibute(String name,Object value) 拓展提高:留言板程序用表單制作的留言板第一個(gè)頁面申明一個(gè)Application對(duì)象存儲(chǔ)客戶的留言。第二個(gè)頁面取出并顯示Application中的信息。第三個(gè)頁面application_submit.jsp:留言板頁面application_messagePane.jsp:獲取留言application_showMessage.jsp:顯示留言out 對(duì)象表示輸出流javax.servlet.jsp.JspWriter 類的實(shí)例使用 write()、print() 和 println() 方法JSP 頁面out 對(duì)象客戶端
19、創(chuàng)建輸出流創(chuàng)建輸出流以顯示信息 請(qǐng)求輸出流在網(wǎng)頁上顯示輸出流服務(wù)器out 對(duì)象示例演示:示例使用out對(duì)象輸出使用out對(duì)象進(jìn)行JSP編程課堂練習(xí):完成一個(gè)用戶注冊(cè)個(gè)人資料的頁面作業(yè):完成用戶登錄、留言程序,實(shí)現(xiàn)下面功能:login.jsp:用戶登錄頁面;message.jsp:驗(yàn)證登錄用戶名和密碼,如果用戶名是:“張三”,密碼是:“123456”,則顯示留言頁面,否則,返回登錄頁面。view.jsp:顯示留言內(nèi)容,包括:主題,日期,內(nèi)容等??偨Y(jié)JSP 表達(dá)式包括在 內(nèi); java程序包含在內(nèi);聲明包含在內(nèi)JSP 指令共有三種類型,即 page、include 和 taglib。JSP 指令包
20、括在 內(nèi)page 指令用于設(shè)置 JSP 頁面的屬性;include 指令用于在 JSP 頁面嵌入其他文件 ;forward動(dòng)作標(biāo)簽用于頁面跳轉(zhuǎn)。JSP 中的內(nèi)置對(duì)象: request、response、out、session、application總結(jié) JSP隱式對(duì)象一般分為輸入/輸出對(duì)象、作用域通信對(duì)象 、Servlet 對(duì)象 和錯(cuò)誤對(duì)象四類 JSP 中的隱式對(duì)象包括 page、config、request、response、out、session、application、pageContext 和 exception JSP 定義的作用域包括 page、request、session 和
21、applicationJSP動(dòng)態(tài)Web技術(shù)深圳職業(yè)技術(shù)學(xué)院軟件技術(shù)專業(yè)JSP文件操作內(nèi)容提要4學(xué)習(xí)目標(biāo)1235文件管理器網(wǎng)絡(luò)日記本文件上傳在線測試系統(tǒng)學(xué)習(xí)目標(biāo)掌握File類及其常用方法;使用文件流進(jìn)行文件的在線讀寫;掌握文件上傳下載的應(yīng)用開發(fā)技術(shù)。JSP文件操作概念和意義操 作使 用File類及常用方法字符流及常用方法文件和目錄操作文件讀寫文件管理器網(wǎng)絡(luò)日記本字符過濾流文件上傳下載文件上傳在線測試File類什么是文件? 文件可認(rèn)為是相關(guān)記錄或放在一起的數(shù)據(jù)的集合File類涉及文件的創(chuàng)建、刪除、獲取屬性等操作,不涉及對(duì)文件進(jìn)行讀寫操作File(String path) File(String p
22、ath,String name)File(File dir,String name)File類構(gòu)造方法File類應(yīng)用編程File 類物理文件或目錄構(gòu)造文件對(duì)象操作文件或目錄的屬性(路徑、權(quán)限、日期和時(shí)間等 ) 文件管理器項(xiàng)目分析獲取輸入,創(chuàng)建File對(duì)象request對(duì)象的getParameter()方法創(chuàng)建目錄mkdir(),創(chuàng)建文件createNewFile(),刪除目錄和文件delete();判斷是否創(chuàng)建/刪除成功exists()方法項(xiàng)目實(shí)訓(xùn)要求輸入文件或目錄路徑;選擇操作類型選擇文件類型輸入文件或目錄名稱操作網(wǎng)絡(luò)日記本預(yù)備知識(shí)字符流類Reader類Writer類BufferedRead
23、er和BufferedWiter類字符過濾流,對(duì)字符流重新“組裝”,數(shù)據(jù)以塊為單位,提高效率;用BufferedReader 讀文本文件構(gòu)造一個(gè)BufferedReader對(duì)象 FileReader fr=new FileReader(mytest.txt); BufferedReader br=new BufferedReader(fr); 利用BufferedReader的方法讀取文本文件的數(shù)據(jù) br.readLine(); /讀取一行數(shù)據(jù),返回字符串關(guān)閉相關(guān)的流對(duì)象 br.close(); fr.close();用BufferedWriter 寫文本文件構(gòu)造一個(gè)BufferedWrite
24、r對(duì)象 FileWriter fw=new FileWriter(mytest.txt); BufferedWriter bw=new BufferedWriter(fw);利用BufferedWriter的方法寫文本文件 bw.write (“hello”); 相關(guān)流對(duì)象的清空和關(guān)閉 bw.flush(); fw.close();演示:示例 項(xiàng)目分析獲取系統(tǒng)時(shí)間Date類的toLocaleString()方法獲取目錄絕對(duì)路徑getServletContext().getRealPath(“/”)讀取/寫入數(shù)據(jù)FileReader、FileWriter文件字符流追加寫入內(nèi)容FileWriter
25、(String name,Boolean append)課堂實(shí)訓(xùn)輸入5名學(xué)生信息寫入文件讀取信息文件上傳預(yù)備知識(shí)表單的ENCTYPE屬性 文件上傳原理 request調(diào)用getInputStream()獲得一個(gè)輸入流; 處理數(shù)據(jù)流,讀入客戶上傳的全部信息; 分析參數(shù)和數(shù)據(jù),將文件數(shù)據(jù)進(jìn)行存儲(chǔ)。File類型表單文件域項(xiàng)目實(shí)現(xiàn)上傳頁面設(shè)計(jì)上傳實(shí)現(xiàn) 項(xiàng)目功能改進(jìn) 選擇圖片 圖片上傳 顯示圖片注意:在一個(gè)表單中如果有ENCTYPE=“multipart/form-data”屬性,則不能接收除type=File外的其他表單元素類型使用jspSmartUpload上傳下載一個(gè)可免費(fèi)使用的全功能文件上傳下載
26、組件安裝組件表單要求上傳頁面設(shè)計(jì)上傳處理頁面下載鏈接頁面下載處理綜合實(shí)例在線測試系統(tǒng)試題使用記事本存儲(chǔ),每道試題用“#”開始總結(jié)與提高File 類用于訪問文件系統(tǒng)流是指一連串流動(dòng)的字符,是以先進(jìn)先出方式發(fā)送信息的通道流可以分為輸入輸出流,也可以分為字節(jié)流和字符流運(yùn)用BufferedReader和BufferedWriter也可以讀寫文本文件,且性能較高文件上傳和下載JSP動(dòng)態(tài)Web技術(shù)深圳職業(yè)技術(shù)學(xué)院軟件技術(shù)專業(yè)JSP數(shù)據(jù)庫訪問技術(shù)內(nèi)容提要4學(xué)習(xí)目標(biāo)1235登錄注冊(cè)模塊信息瀏覽模塊后臺(tái)管理模塊在線投票系統(tǒng)學(xué)習(xí)目標(biāo)掌握J(rèn)DBC連接數(shù)據(jù)庫技術(shù)掌握在Web頁面實(shí)現(xiàn)數(shù)據(jù)查詢、修改、增加、刪除技術(shù)掌握數(shù)
27、據(jù)分頁顯示了解網(wǎng)站后臺(tái)的開發(fā)和管理JSP數(shù)據(jù)庫訪問概念和意義操 作使 用JDBC-ODBC橋數(shù)據(jù)庫操作知識(shí)數(shù)據(jù)庫連接數(shù)據(jù)庫操作學(xué)生信息系統(tǒng)在線投票系統(tǒng)數(shù)據(jù)分頁顯示原理分頁顯示學(xué)生信息系統(tǒng)登錄注冊(cè)模塊登錄注冊(cè)模塊分析預(yù)備知識(shí)JDBC JDBC(Java DataBase Connectivity):JDBC是執(zhí)行SQL語句的API:是第一個(gè)標(biāo)準(zhǔn)化地把關(guān)系數(shù)據(jù)庫和Java程序集成到一起的嘗試; 與一個(gè)數(shù)據(jù)庫建立連接; 向數(shù)據(jù)庫發(fā)送SQL語句; 處理數(shù)據(jù)庫返回的結(jié)果??蛻魴C(jī)Java applet或java應(yīng)用中間件業(yè)務(wù)規(guī)定客戶機(jī)庫SQL請(qǐng)求請(qǐng)求結(jié)果存儲(chǔ)器數(shù)據(jù)庫服務(wù)器存儲(chǔ)器加載橋接器驅(qū)動(dòng)程序Class
28、.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); Class是包java.lang中的一個(gè)類,該類調(diào)用靜態(tài)方法forName就可以建立橋接器。 注意:處理異常。tryClass.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);catch(ClassNotFoundException e) 連接到數(shù)據(jù)庫 使用java.sql包中的Connection類聲明一個(gè)對(duì)象; 使用DriverManager類調(diào)用靜態(tài)方法getConnection創(chuàng)建這個(gè)連接對(duì)象 Connection con=DriverManager.getConnect
29、ion(“jdbc:odbc:數(shù)據(jù)源名字”,”login name”,”password”);假設(shè)數(shù)據(jù)庫students的數(shù)據(jù)源的名稱為sun,建立的方法為:try Connection con = DriverManager.getConnection(jdbc:odbc:banji);catch(SQLException e)連接到數(shù)據(jù)庫向數(shù)據(jù)庫發(fā)送SQL語句用Statement聲明一個(gè)SQL語句對(duì)象;調(diào)用連接數(shù)據(jù)庫的對(duì)象con調(diào)用方法createStartment()創(chuàng)建SQL對(duì)象;try Statement sql=con.createStatement(); Catch(SQLExc
30、eption e) 處理查詢結(jié)果 查詢對(duì)象:ResultSet類聲明的對(duì)象; SQL語句對(duì)象:調(diào)用方法對(duì)表查詢和修改;ResultSet rs=sql.executeQuery(“select * from 表名”); 多行數(shù)據(jù)顯示方法:ResultSet對(duì)象一次只能看到一個(gè)數(shù)據(jù)行,使用next()方法移到下一數(shù)據(jù)行: rs.next()數(shù)據(jù)庫連接過程建立數(shù)據(jù)庫stuinfo,建立數(shù)據(jù)表user_info建立數(shù)據(jù)源:banji步驟:控制面板ODBC數(shù)據(jù)源系統(tǒng)(用戶)DSN添加不同數(shù)據(jù)庫驅(qū)動(dòng)程序完成數(shù)據(jù)源名選擇數(shù)據(jù)庫裝載驅(qū)動(dòng)程序;連接數(shù)據(jù)庫;創(chuàng)建Statement接口對(duì)象;處理結(jié)果集模塊實(shí)現(xiàn)設(shè)計(jì)
31、首頁:index.jsp注意: form的action屬性“l(fā)ogin_check.jsp”; 用戶名文本框:name屬性“name” 密碼文本框:name屬性“password”驗(yàn)證登錄:“l(fā)ogin_check.jsp”用戶注冊(cè)頁面:register.jsp模塊分析插入文件項(xiàng)目分析保存用戶名session對(duì)象調(diào)用setAttribute(String key,Object value)方法重定向response對(duì)象的sendRedirect(“index.jsp”),實(shí)現(xiàn)從當(dāng)前頁面引導(dǎo)到另一個(gè)頁面。課堂實(shí)訓(xùn)用戶登錄后,點(diǎn)擊“個(gè)人信息管理”,如圖4所示,該頁面可對(duì)用戶的密碼、真實(shí)姓名進(jìn)行修改
32、,請(qǐng)完成該頁面設(shè)計(jì)及功能實(shí)現(xiàn)編碼。學(xué)生信息瀏覽模塊學(xué)生信息查詢 分頁顯示問題分析限制非法用戶登錄“ login_name”是存儲(chǔ)在session中對(duì)應(yīng)的保存成功登錄者的帳號(hào)如果沒有在會(huì)話期內(nèi)獲取session中存儲(chǔ)的用戶名,則說明沒有正確登錄登錄失敗,使用response對(duì)象的sendRedirect(URL url)重定向到index.jsp頁面信息查詢實(shí)現(xiàn)數(shù)據(jù)庫設(shè)計(jì)功能實(shí)現(xiàn)“main.jsp“設(shè)計(jì)查詢頁面編程程序分析模糊查詢用用SQL語句操作符like進(jìn)行模式般配,使用“%”代替一個(gè)或多個(gè)字符,用一個(gè)下劃線“_”代替一個(gè)字符當(dāng)查詢值為字符類型時(shí),需要加“ ”結(jié)果集Result的next()
33、方法可以順序查詢,最初游標(biāo)定位在第一行之前,當(dāng)游標(biāo)移動(dòng)到最后一行后返回false獲取記錄集,使用ResultSet對(duì)象的rs.getXxx()方法獲取對(duì)應(yīng)字段的數(shù)據(jù)分頁顯示算法思想 原理解析:假設(shè)總記錄為m,每頁顯示數(shù)量是n,那么總頁數(shù)的計(jì)算公式是:如果m除以n的余數(shù)是n,總頁數(shù)等于m除以n的商加1;如果m除以n的余數(shù)等于0,總頁數(shù)等于m除以n的商。 即:總的頁數(shù)=(m%n)=0?(m/n)(m/n+1); 如果準(zhǔn)備顯示第p頁的內(nèi)容,應(yīng)當(dāng)把游標(biāo)移動(dòng)到第(p-1)*n+1條記錄處。預(yù)備知識(shí)游動(dòng)查詢 Statement statement=con.createStatement(int type,
34、int concurrency); type的取值決定滾動(dòng)方式,取值還可以是:TYPE_SCROLL_SENSITIVE 指針能夠向前或向后自由移動(dòng),其他ResultSet對(duì)象變動(dòng)指針時(shí),會(huì)影響指針的位置;TYPE_SCROLL_INSENSITIVE 指針能夠向前或向后自由移動(dòng),其他ResultSet對(duì)象變動(dòng)指針時(shí),不會(huì)影響指針的位置。 Concurrency取值決定是否可以用數(shù)據(jù)集更新數(shù)據(jù)庫CONCUR_READ_ONLY: 不能用結(jié)果集更新數(shù)據(jù)庫中的表;CONCUR_UPDATEABLE: ResultSet對(duì)象中的數(shù)據(jù)可以讀也可以修改,不能用結(jié)果集更新數(shù)據(jù)庫中的表;程序分析清除空格tr
35、im(String)方法 if (showPage1) % a href=?showPage=&select=&query= % if (showPage a href=?showPage=&select=&query= 地址鏈接參數(shù)傳遞課堂實(shí)訓(xùn)完成密碼重設(shè)功能后臺(tái)管理模塊數(shù)據(jù)維護(hù)程序分析信息添加 String condition=insert into Student values(+number+,+name+,+sex+,+age+,+classes+); sql.executeUpdate(condition);信息刪除String condition=delete from Stud
36、ent where id= +id; sql.executeUpdate(condition);信息修改 String condition=update student set number=+number+,+name=+name+,+sex=+sex+,+age=+age+,class=+classes+where id=+id; sql.executeUpdate(condition);課堂實(shí)訓(xùn)新聞瀏覽新聞分類欄目管理系統(tǒng)驗(yàn)證新聞管理綜合實(shí)例在線投票系統(tǒng)投票模塊survey.jsp計(jì)數(shù)模塊vote.jsp顯示模塊view.jsp程序分析投票率:img src=view.gif width
37、= height=8 % 得:票 共:票ResultSet rs = sql.executeQuery(select * from vote); String rb = request.getParameter(type); String condition = Update vote Set numb=numb+1 where id= + rb; sql.executeUpdate(condition);投票內(nèi)容顯示投票信息更新投票率用百分比和條形圖顯示Math.floor():返回不大于參數(shù)的最大整數(shù)課堂實(shí)訓(xùn)管理員身份登錄驗(yàn)證管理頁面新增投票項(xiàng)目模塊刪除投票項(xiàng)目模塊修改投票項(xiàng)目模塊總結(jié)與提
38、高 數(shù)據(jù)庫連接對(duì)動(dòng)態(tài)網(wǎng)站來說是最為重要的部分,java連接數(shù)據(jù)庫的技術(shù)是JDBC, java可以通過JDBC和JDBC-ODBC橋訪問關(guān)系型數(shù)據(jù)庫。JDBC是一種可用于SQL語句的java API,它由一些java語言編寫的類和界面組成,很多數(shù)據(jù)庫系統(tǒng)帶有JDBC驅(qū)動(dòng)程序,java程序就通過JDBC驅(qū)動(dòng)程序與數(shù)據(jù)庫相連,執(zhí)行查詢、提取數(shù)據(jù)等,而這些具體操作必須由SQL命令來完成。JSP動(dòng)態(tài)Web技術(shù)深圳職業(yè)技術(shù)學(xué)院軟件技術(shù)專業(yè)JSP與JavaBean內(nèi)容提要4學(xué)習(xí)目標(biāo)1235猜數(shù)游戲班級(jí)新聞網(wǎng)班級(jí)相冊(cè)總結(jié)提高學(xué)習(xí)目標(biāo)了解JavaBean的基本組成與工作原理掌握J(rèn)avaBean的程序抽象、編寫掌
39、握J(rèn)SP中調(diào)用JavaBean的方法JavaBean技術(shù)設(shè) 計(jì)調(diào) 用使 用JavaBean的結(jié)構(gòu)JavaBean的屬性使用JavaBean獲取JavaBean的屬性值猜數(shù)游戲班級(jí)新聞網(wǎng)JavaBean的方法修改JavaBean的屬性值班級(jí)相冊(cè)猜數(shù)游戲游戲開始,產(chǎn)生隨機(jī)數(shù)填寫數(shù)字,一次次與隨機(jī)數(shù)比較驗(yàn)證邏輯交給JavaBean處理組件思索:之前的jsp程序的編寫中,html與java代碼之間的關(guān)系是什么?程序設(shè)計(jì)技術(shù)以及工具產(chǎn)生的原因?如何讓HTML代碼與java代碼進(jìn)一步分離?軟件組件指一個(gè)個(gè)具有一定功能的,且被封裝好的軟件模塊,形象地稱為軟件黑匣子。 組件保存的狀態(tài),也成為屬性 一定條件下,
40、組件還可以觸發(fā)一些事件外部調(diào)用組件的方法完成一定任務(wù)JavaBean技術(shù) JAVABEAN是一種基于JAVA的軟件組件;類似于Microsoft的COM組件的概念!JavaBeans特點(diǎn):可以實(shí)現(xiàn)代碼的重復(fù)利用;易編寫、易維護(hù)、易使用; 跨平臺(tái) JAVABEAN 的模型 package 包名; public class 類名 構(gòu)造方法(); 屬性(Property); 方法(Method);分析:編寫JavaBeans就是編寫一個(gè)Java的類,這個(gè)類創(chuàng)建的一個(gè)對(duì)象稱作一個(gè)beans。JavaBean文件編寫要點(diǎn)類名稱與保存的文件名稱必須是一致的,同時(shí),類必須聲明為公有類,類中方法的訪問屬性都必
41、須是public;構(gòu)造函數(shù)的名稱必須與類的名稱一致,主要用來初始化,無參數(shù)輸入;Javabean類中的方法:類的成員名字是xxx,獲取和更改xxx形式如下: getXxx():獲取屬性xxx; setXxx():修改屬性xxx;boolean型屬性,允許用is代替get和set類中方法的訪問屬性必須是public類中構(gòu)造方法必須是public,并且是無參數(shù);屬性值設(shè)定/讀取方法public void set設(shè)定方法名稱(數(shù)據(jù)類型 參數(shù)) this.變量=參數(shù);例如: public void setSQL(String SQL) this.JavaSQL=SQL;語法結(jié)構(gòu):public void
42、 get讀取方法名稱() return this.變量=參數(shù);例如: public void getSQL(String SQL) return this.JavaSQL;注意:屬性值的讀取方法名稱一般以get開頭,加上方法名稱設(shè) 定讀 取JSP中使用JavaBean語法格式: jsp:useBean id=“給bean起的名字” scope=“bean有效范圍” class=“創(chuàng)建beans的類” “|”表示可選部分; 例如: 設(shè)置屬性值: girl.setRadius(100); 獲取屬性值: 項(xiàng)目實(shí)現(xiàn)新建工程;新建Web應(yīng)用;創(chuàng)建JavaBean:GuessNumber.java;設(shè)置屬
43、性:answer(實(shí)際答案)、guessNumber(用戶猜測數(shù))、guessCount(猜數(shù)次數(shù))setGuessNumber方法(業(yè)務(wù)邏輯)getGuessNumber方法getGuessCount方法getResult方法setAnswer方法getAnswer方法編寫Jsp文件(使用JavaBean)index.jspGuess.jsp程序解析定義一個(gè)JavaBean的實(shí)例setProperty動(dòng)作標(biāo)簽設(shè)置beans屬性的值jsp:setProperty name=beans的名字 property=beans的屬性 value=字符串 getProperty動(dòng)作標(biāo)簽獲得beans的屬
44、性值 JavaBean生命周期Scope的取值:Page: 該beans的有效范圍是當(dāng)前頁面,離開這個(gè)頁面時(shí),JSP引擎取消分配給該客戶的beans。Session: 該beans的有效范圍是客戶的會(huì)話期間。Request: 該beans的有效范圍是request期間 Forward跳轉(zhuǎn)的頁面之間共享該bean;sendRedirect()重定向不行;Application: beans的生命周期最長,可以和jsp引擎相當(dāng),所有客戶共享,只有當(dāng)重新啟動(dòng)Tomcat時(shí),該Tomcat下的所有jsp程序共享該范圍的bean;班級(jí)新聞網(wǎng)新聞欄目新聞列表新聞內(nèi)容后臺(tái)管理管理員登錄新聞添加新聞修改、刪除
45、JavaBean把常用的數(shù)據(jù)庫功能都封裝起來,例如打開數(shù)據(jù)庫、關(guān)閉數(shù)據(jù)庫、執(zhí)行查詢、插入數(shù)據(jù)項(xiàng)目實(shí)現(xiàn)前臺(tái)設(shè)計(jì)數(shù)據(jù)庫,數(shù)據(jù)表mynews(p150)設(shè)計(jì)JSPnews.jsp、view_news.jsp、view_news_detail.jsp編寫JavaBeanDBconn.java項(xiàng)目實(shí)現(xiàn)后臺(tái)管理登錄頁面login.jsp驗(yàn)證登錄login_checked.jsp新聞編輯主頁面news_main.jsp新聞?dòng)涗泟h除news_del.jsp新聞?dòng)涗浱砑觧ews_add.jsp、news_add_f.jsp新聞信息修改news_edit.jsp、news_edit_f.jsp預(yù)處理Prepare
46、Stament連接數(shù)據(jù)庫建立數(shù)據(jù)庫建立ODBC數(shù)據(jù)源(系統(tǒng)DSN)數(shù)據(jù)庫連接引入java.sql.*加載驅(qū)動(dòng)程 Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);建立連接 Connection con =DriverManager.getConnection(jdbc:odbc:數(shù)據(jù)源);建立預(yù)處理 PreparedStatement ps=con.prepareStament(str)設(shè)置每個(gè)“?”參數(shù)的值,如ps.setString(1,name);ps.setString(2,name)執(zhí)行PreparedStament的對(duì)象ps.execute()
47、;或是獲取查詢結(jié)果ResultSet rs=ps.executeQuery()后處理結(jié)果集關(guān)閉結(jié)果集rs.close()關(guān)閉預(yù)處理ps.close()關(guān)閉連接con.close()班級(jí)像冊(cè)數(shù)據(jù)表photo編寫JavaBeanDBconn.java前臺(tái)文件:設(shè)計(jì)頁面photo.jspview_photo.jspview_photo_detail.jsp后臺(tái)文件:uploadfiles.htmlshowfiles.jspphoto_main.jspphoto_del.jspphoto_add_f.jspphoto_edit.jdp總結(jié)與提高 JavaBean特征public公共類無參的public
48、構(gòu)造方法一組符合命名規(guī)范的set和get方法JavaBean屬性SimpleIndexedBoundConstrained調(diào)用JavaBeanjsp:useBeanJSP動(dòng)態(tài)Web技術(shù)深圳職業(yè)技術(shù)學(xué)院軟件技術(shù)專業(yè)JSP與Servlet內(nèi)容提要4學(xué)習(xí)目標(biāo)1235彩色驗(yàn)證碼購物車留言板總結(jié)與提高學(xué)習(xí)目標(biāo) 了解Servlet生命周期 掌握Servlet和JSP的交互技術(shù) 掌握常用的Servlet API應(yīng)用 了解基本的Web應(yīng)用開發(fā)模式Java Servlet概念和意義操 作使 用Servlet工作原理Servlet生命周期編寫ServletServlet與表單的交互彩色驗(yàn)證碼購物車會(huì) 話Servl
49、et訪問數(shù)據(jù)庫留言板Servlet彩色驗(yàn)證碼防范惡意網(wǎng)站下載軟件防止不經(jīng)過本網(wǎng)站而使用網(wǎng)站資源Servlet可以方便調(diào)用Java相關(guān)的類庫進(jìn)行圖像操作驗(yàn)證碼是一個(gè)在Web服務(wù)器上生成的隨機(jī)字符串驗(yàn)證碼以圖片形式顯示圖片中字符串使用旋轉(zhuǎn)字符、添加背景紋理等技術(shù)認(rèn)識(shí)Servlet 是Java編程語言中的一個(gè)類; 服務(wù)器端的Java應(yīng)用程序; 可生成動(dòng)態(tài)Web頁面; 用于處理客戶機(jī)和服務(wù)器之間的消息傳遞; Servlet不支持圖形用戶界面; Servlets利用輸出HTML語句來實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁;客戶端Servlet 運(yùn)行于服務(wù)器上JSP與Servlet的聯(lián)系 從 Jsp的角度,servlet實(shí)際上是j
50、sp被解釋執(zhí)行的中間過程; jsp實(shí)際上是為了讓Servlet 的開發(fā)顯得相對(duì)容易而采取 的腳本語言形式 jsp實(shí)際上就是Servlet,jsp實(shí)際上轉(zhuǎn)換成servelt,然后編譯執(zhí)行; jsp與servlet的不同編程方式不同 jsp遵循腳本語言的編制標(biāo)準(zhǔn); servlet嚴(yán)格遵循java 語言的編程標(biāo)準(zhǔn);運(yùn)行速度的不同Jsp比servlet運(yùn)行慢,jsp必須轉(zhuǎn)換成servlet 再運(yùn)行;運(yùn)行方式不同Servlet是java程序,必須編譯成 .class 文件執(zhí)行,jsp直接由Tomcat將以執(zhí)行;為什么要學(xué)習(xí)servlet編制jsp程序時(shí),使得編程更具結(jié)構(gòu)化; jsp是為了便于 編制 se
51、rvlet而開發(fā)的腳本程序語言;為了更深入進(jìn)行jsp編程; 學(xué)習(xí)servelt是解決高難度的jsp問題非常有用;Servlet可以彌補(bǔ)jsp的弱點(diǎn);jsp 職責(zé)是承擔(dān)頁面處理的工作; 內(nèi)部數(shù)據(jù)的處理由servlet或者JavaBean 來進(jìn)行;HTTP Servlet 基礎(chǔ)知識(shí)HttpServlet 類提供一個(gè)抽象類以創(chuàng)建 HTTP Servletpublic void doGet(HttpServletRequest req,HttpServletResponse res)doGet() 方法處理客戶端作出的 GET 請(qǐng)求。public void doPost(HttpServletRequ
52、est req,HttpServletResponse res)doPost() 方法處理客戶端作出的 POST 請(qǐng)求。Servlet 的生命周期 Servlet 容器創(chuàng)建 Servlet 的一個(gè)實(shí)例Servlet 的生命周期就是指創(chuàng)建 Servlet 實(shí)例之后其存在的時(shí)間以及何時(shí)消失實(shí)例化Servlet 容器創(chuàng)建 Servlet 的實(shí)例初始化該容器調(diào)用 init() 方法服 務(wù)如果請(qǐng)求 Servlet,則容器調(diào)用 service() 方法銷毀實(shí)例之前調(diào)用 destroy() 方法銷 毀不可用銷毀實(shí)例并標(biāo)記為垃圾收集項(xiàng)目實(shí)現(xiàn)驗(yàn)證碼的產(chǎn)生編寫Servlet文件VefifyCode.java創(chuàng)建登
53、錄驗(yàn)證碼校驗(yàn)頁面設(shè)計(jì)login.jsp驗(yàn)證碼驗(yàn)證編寫Servlet文件Check.java配置web.xml 完成了Servlet的映射,程序運(yùn)行的IE地址欄:http:/localhost:8080/app61/verifycode,verifycode映射VerifyCode.java文件。 verifycode /verifycode verifycode app61. verifycode 完成了對(duì)Servlet的名稱(VerifyCode)和Servlet的類之間的映射,把名稱為verifycode的Servlet映射到app61包中的VerifyCode.class。兩個(gè)名稱必須相同程序解析Servlet文件通過實(shí)現(xiàn)javax.servlet.http.Ht
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025公司食堂委托經(jīng)營合同范本
- 二零二五年度集資房預(yù)售款分期支付合同3篇
- 2025-2030年中國薰衣草行業(yè)規(guī)模分析及投資策略研究報(bào)告
- 2025-2030年中國草坪產(chǎn)業(yè)發(fā)展?fàn)顩r及投資前景規(guī)劃研究報(bào)告
- 2025-2030年中國蘆筍罐頭行業(yè)前景發(fā)展趨勢及投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國肉雞產(chǎn)業(yè)需求狀況及投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國終端渠道市場發(fā)展前景規(guī)劃研究報(bào)告
- 二零二五版廢紙回收與環(huán)保造紙合作協(xié)議3篇
- 2025年度電子產(chǎn)品維修服務(wù)賒賬合同4篇
- 2025-2030年中國真絲綢服裝行業(yè)前景趨勢及投資潛力分析報(bào)告
- JTS-167-2-2009重力式碼頭設(shè)計(jì)與施工規(guī)范
- DBJ-T15-81-2022 建筑混凝土結(jié)構(gòu)耐火設(shè)計(jì)技術(shù)規(guī)程
- GB/T 22849-2024針織T恤衫
- 山東省淄博市2023-2024學(xué)年高二上學(xué)期教學(xué)質(zhì)量檢測化學(xué)試題
- 人工智能在電影與影視制作中的創(chuàng)新與效果提升
- 新生兒腸絞痛的課件
- 酒店民宿自媒體營銷策劃
- 消除母嬰傳播培訓(xùn)課件
- 包裝過程質(zhì)量控制
- 通用電子嘉賓禮薄
- 李毓佩數(shù)學(xué)歷險(xiǎn)記
評(píng)論
0/150
提交評(píng)論