javaJSP知識詳細教程總結(jié)_第1頁
javaJSP知識詳細教程總結(jié)_第2頁
javaJSP知識詳細教程總結(jié)_第3頁
javaJSP知識詳細教程總結(jié)_第4頁
javaJSP知識詳細教程總結(jié)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第二章JSP的基礎知識語法JSP的特點程序邏輯于顯示分離;可重用組件;使用標簽簡化頁面開發(fā);具有java的特點;JSP的運行機制:JSP客器.1JSP文件〔trari£htiorL),Savkt文林[.jwa).@返回響應7TServkt或例?12-1JSP文件的執(zhí)行過程□JSP容器管理JSP頁面生命周期的兩個階段:轉(zhuǎn)換階段(translationphase)和執(zhí)行階段(executionphase)。當有一個對JSP頁面的客戶請求到來時,JSP容器檢驗JSP頁面的語法是否正確,將JSP頁面轉(zhuǎn)換為Servlet源文件,然后調(diào)用javac工具類編譯Servlet源文件生成字節(jié)碼文件,這一階段是轉(zhuǎn)換階段。接下來,Servlet容器加載轉(zhuǎn)換后的Servlet類,實例化一個對象處理客戶端的請求,在請求處理完成后,響應對象被JSP容器接收,容器將HTML格式的響應信息發(fā)送到客戶端,這一階段是執(zhí)行階段。從整個過程中我們可以知道,當?shù)谝淮渭虞dJSP頁面時,因為要將JSP文件轉(zhuǎn)換為Servlet類,所以響應速度較慢。當再次請求時,JSP容器就會直接執(zhí)行第一次請求時產(chǎn)生的Servlet,而不會再重新轉(zhuǎn)換JSP文件,所以其執(zhí)行速度和原始的Servlet執(zhí)行速度幾乎就相同了。在JSP執(zhí)行期間,JSP容器會檢查JSP文件,看是否有更新或修改。如果有更新或修改,JSP容器會再次編譯JSP或Servlet;如果沒有更新或修改,就直接執(zhí)行前面產(chǎn)生的Servlet,這也是JSP相對于Servlet的好處之一。在JSP2.0規(guī)范中,元素有三種類型:指令元素、腳本元素和動作元素。JSP腳本語言JSP聲明語句JSPScriptJSP表達式要注意,在書寫表達式的時候,一定不要在表達式后面添加任何的標點符號。JSP注釋一類是可在客戶端顯示的HTML注釋一類是不能在客戶端顯示的JSP注釋和java注釋第三章JSP指令元素指令元素有三種指令:page,include和taglibo1.page指令page指令作用于整個JSP頁面,定義了許多與頁面相關的屬性,這些屬性將被用于和JSP容器通信。errorPage="error_url"該屬性用于指定當JSP頁面發(fā)生異常時,將轉(zhuǎn)向哪一個錯誤處理頁面。要注意的是,如果一個頁面通過使用該屬性定義了錯誤頁面,那么在web.xml文件中定義的任何錯誤頁面將不會被使用。contentType="ctinfo”該屬性指定用于響應的JSP頁面的MIME類型和字符編碼。pageEncoding="peinfo”該屬性指定JSP頁面使用的字符編碼。如果設置了這個屬性,則JSP頁面的字符編碼使用該屬性指定的字符集,如果沒有設置這個屬性,則JSP頁面使用contentType屬性指定的字符集,如果這兩個屬性都沒有指定,則使用字符集TSO-8859-1”。contentType—指定的是JSP頁最終Browser(客戶端)所見到的網(wǎng)頁內(nèi)容的編碼pageEncoding--指定JSP編寫時所用的編碼,pageEncoding的內(nèi)容只是用于jsp輸出時的編碼,不會作為header發(fā)出去的。isELIgnored="true|false”對應于該屬性的JSP配置元素是<el-ignored>MIME類型全稱"MultipurposeInternetMailExtensions"多功能Internet郵件擴充服務,多用途網(wǎng)際郵件擴充協(xié)議,就是設定某種擴展名的文件用一種應用程序來打開的方式類型,當該擴展名文件被訪問的時候,瀏覽器會自動使用指定應用程序來打開。超文本標記語言文本.htmltext/htmlxml文檔.xmltext/xmlXHTML文檔.xhtmlapplication/xhtml+xml普通文本.txttext/plainRTF文本.rtfapplication/rtfPDF文檔.pdfapplication/pdfMicrosoftWord文件.wordapplication/mswordPNG圖像,pngimage/pngGIF圖形,gifimage/gifJPEG圖形.jpeg,.jpgimage/jpegau聲音文件.auaudio/basicMIDI音樂文件mid,.midiaudio/midi,audio/x-midiRealAudio音樂文件.ra,.ramaudio/x-pn-realaudioMPEG文件.mpg,.mpegvideo/mpegAVI文件.avivideo/x-msvideoGZIP文件.gzapplication/x-gzipTAR文件.tarapplication/x-tar任意的二進制數(shù)據(jù)application/octet-streaminclude指令include指令用于在JSP頁面中靜態(tài)包含一個文件,該文件可以是JSP頁面、HTML網(wǎng)頁、文本文件或一段Java代碼。使用了include指令的JSP頁面在轉(zhuǎn)換時,JSP容器會在其中插入所包含文件的文本或代碼。<%@includefile="relativeURLspec”%>注意:在被包含的文件中最好不要使用<html>、</html>、<body>、</body>等標簽,因為這會影響到原JSP文件中同樣的標簽,有時會導致錯誤。另外,因為原文件和被包含的文件可以互相訪問彼此定義的變量和方法,所以在包含文件時要格外小心,避免在被包含的文件中定義了同名的變量和方法,而導致轉(zhuǎn)換時出錯;或者不小心修改了另外文件中的變量值,而導致出現(xiàn)不可預料的結(jié)果。taglib指令tablib指令允許頁面使用用戶定制的標簽<%@taglib(uri="tagLibraryURI"Itagdir="tagDir")prefix="tagPrefix”%>第四章JSP動作元素JSP2.0規(guī)范定義了一些標準的動作。標準動作是一些標簽,它們影響JSP運行時的行為和對客戶端請求的響應,這些動作由JSP容器來實現(xiàn)。可以用來動態(tài)的包含文件,頁面跳轉(zhuǎn)及使用JavaBean組件等。JSP2.0規(guī)范中定義了20個標準的動作元素。JSP動作元素分類第一類是與存取JavaBean有關的,3個<jsp:userBean><jsp:setProperty><jsp:getProperty>第二類是JSP1.2就開始有的基本動作元素,6個<jsp:include><jsp:fOrward><jsp:param><jsp:plugin><jsp:params><jsp:fallback>第三類是JSP2.0新增的動作元素,主要與JSPDocument有關,6個<jsp:root><jsp:declaration><jsp:scriptlet><jsp:expression><jsp:text><jsp:output>第四類也是JSP2.0新增的動作元素,主要用于動態(tài)生成XML元素標簽的值,3個<jsp:arrtibute><jsp:body><jsp:element>第五類也是JSP2.0新增的動作元素,主要用于TagFile中,2個<jsp:invoke><jsp:doBody><jsp:include><jsp:includepage=''urlSpec''flush="true|false"/>include指令與<jsp:include>動作元素區(qū)別:include(偽)指令被稱為靜態(tài)include,在jsp翻譯成servlet階段進行處理。處理方式是直接將include文件包含到當前頁面,合成為一個完整的jsp文件后,然后進行jsp翻譯為servlet的操作。而include動作元素被稱為動態(tài)include,在jsp翻譯成servlet階段,包含文件和被包含文件會被翻譯成兩個獨立的servlet,不會進行合并處理。由此可知,動態(tài)include的jsp文件獨立性很強,是一個單獨的jsp文件,需要使用的對象、頁面設置都必須有自己創(chuàng)建,不過還好它和include它的頁面的request范圍是一致的。而靜態(tài)include純粹是把代碼寫在外面的一種共享方法,所有的變量都是可以和include它的主文件共享,兩者高度緊密結(jié)合,不能有變量同名的沖突,而頁面設置也可以借用主文件的。一般來說,include(偽)指令不會檢測被包含頁面的內(nèi)容變化,include動作元素則會檢測被包含頁面的內(nèi)容變化,不過以我實際測試的結(jié)果來看,目前這兩種include方式都能夠動態(tài)檢測內(nèi)容的變化。語法相對路徑發(fā)生時間包含的對象描述<%@includefile="url”%>相對于當前文件轉(zhuǎn)換期間靜態(tài)包含的內(nèi)容被JSP容器分析<jsp:includepage="url”/>相對于當前頁面請求處理期間靜態(tài)和動態(tài)包含的內(nèi)容不進行分析,但在相應的位置被包含要注意,表中include指令包含的對象為靜態(tài),并不是指include指令只能包含像HTML這樣的靜態(tài)頁面,include指令也可以包含JSP頁面。所謂靜態(tài)和動態(tài)指的是:include指令將JSP頁面作為靜態(tài)對象,將頁面的內(nèi)容(文本或代碼)在include指令的位置處包含進來,這個過程發(fā)生在JSP頁面的轉(zhuǎn)換階段。而<jsp:include>動作把包含的JSP頁面作為動態(tài)對象,在請求處理期間,發(fā)送請求給該對象,然后在當前頁面對請求的響應中包含該對象對請求處理的結(jié)果,這個過程發(fā)生在執(zhí)行階段(即請求處理階段)。include指令的file屬性所給出的路徑是相對于當前文件的,而<jsp:include>動作的page屬性所給出的路徑是相對于當前頁面的,要理解相對于當前文件和相對于當前頁面的區(qū)別,就需要結(jié)合include指令和<jsp:include>動作對被包含資源的不同處理方式來考慮。當采用include指令包含資源時,相對路徑的解析在轉(zhuǎn)換期間發(fā)生(相對于當前文件的路徑來找到資源),資源的內(nèi)容(文本或代碼)在include指令的位置處被包含進來,成為一個整體,被轉(zhuǎn)換為Servlet源文件。當采用<jsp:include>動作包含資源時,相對路徑的解析在請求處理期間發(fā)生(相對于當前頁面的路徑來找到資源),當前頁面和被包含的資源是兩個獨立的個體,當前頁面將請求發(fā)送給被包含的資源,被包含資源對請求處理的結(jié)果將作為當前頁面對請求響應的一部分發(fā)送到客戶端。為了更好地理解include指令和<jsp:include>動作包含資源的相對路徑,搞清楚相對于當前文件和相對于當前頁面的區(qū)別,我們給出了表12-2的例子。在這個例子中共用到4個文件:a.jsp,c.jsp,abc/b.jsp和abc/c.jsp。在兩個文件中分別使用include指令和<jsp:include>動作包含資源的例子(垃圾例子)a.jspabc/b.jsp結(jié)果<%@includefile="abc/b.jsp”%><%@includefile="c.jsp”%>abc/c.jsp<jsp:includepage="abc/b.jsp"/><jsp:includepage="c.jsp”/>abc/c.jsp<jsp:includepage="abc/b.jsp"/><%@includefile="c.jsp”%>abc/c.jsp<%@includefile="abc/b.jsp”%><jsp:includepage="c.jsp”/>c.jsp自己來思考結(jié)果,以便更好地理解include指令和<jsp:include>動作包含資源的相對路徑。簡而言之:include指令是先包含在處理<jsp:include>是先處理在包含而在tomcat4.x版本中,只要在包含頁面中定義了<%@pagelanguage="java"import="java.util.*"contentType="text/html;charset=UTF-8"%>,被包含頁面中就不能也不用再次聲明就會顯示正常的中文,否則會出現(xiàn)Pagedirective:can'thavemultipleoccurrencesofcontentType的錯誤。而在tomcat5.x中,需要在被包含文件中再次聲明<%@pagelanguage="java"import="java.util.*"contentType="text/html;charset=UTF-8"%>,且這里聲明的內(nèi)容必須跟包含頁面里聲明的項目的內(nèi)容一致才行,否則會出現(xiàn)Pagedirective:illegaltohavemultipleoccurrencesofcontentTypewithdifferentvalues的錯誤。如果使用<jsp:include>方式則兩個文件可以自行定義<%@page%>里的聲明內(nèi)容。<jsp:forward><jsp:forwardpage="relativeURLspec"/>用來轉(zhuǎn)移用戶的請求,使得用戶請求的頁面從一個頁面跳轉(zhuǎn)到另一個頁面。<jsp:forward>>一種服務器端跳轉(zhuǎn),所以用戶地址欄不會發(fā)生任何變化。這個動作允許在運行時將當前的請求轉(zhuǎn)發(fā)給一個靜態(tài)的資源、JSP頁面或者Servlet,請求被轉(zhuǎn)向到的資源必須位于同JSP發(fā)送請求相同的上下文環(huán)境中。這個動作會終止當前頁面的執(zhí)行,如果頁面輸出使用了緩沖,在轉(zhuǎn)發(fā)請求之前,緩沖區(qū)將被清除;如果在轉(zhuǎn)發(fā)請求之前,緩沖區(qū)已經(jīng)刷新,將拋出IllegalStateException異常。如果頁面輸出沒有使用緩沖,而某些輸出已經(jīng)發(fā)送,那么試圖調(diào)用jsp:forward>動作,將導致拋出IllegalStateException異常。這個動作的作用和RequestDispatcher接口的forward()方法的作用是一樣的。重定向技術:客戶端重定向;服務器端重定向;

第五章JSP內(nèi)置對象9個內(nèi)置對象屬性保存范圍:Page,request,session,applicationrequest對象String.Enumeration.String[].Mapresponse對象voidvoidvoidgetParameter(Stringname);getParameterNames();getParameterValues(Stringname);getParameterMap();addHeader(Stringname,Stringvalue);setHeader(Stringname,Stringvalue);sendRedirect(URL);response.addIntHeader("Refresh”,10)等同于HTML中的<metahttp-equiv="refresh”content="10"/>out對象voidprint();voidprintln();session對象StringgetId();voidinvalidate();voidsetMaxInactiveInterval();application對象StringgetServerInfo();ServletContextgetContext();StringgetRealPath("\”);pageContext對象不但可以這只page范圍的屬性,同樣也可以用來設置其他范圍屬性,不過需要指定范圍參數(shù)。page對象可以非常方便的調(diào)用Servlet類中定義的方法;config對象可以獲取Servlet的配置信息getInitParameter(name);getServletName();getServletContext();getInitParameter(name);getServletName();getServletContext();exception對象用來處理錯誤異常。要使用exception對象,必須指定page中的isErrorPage屬性值為’’true”第六章數(shù)據(jù)庫操作(略)

第七章JSP和JavaBean一個標準的JavaBean的特點:必須是一個公共的類。必須具有一個無參構造方法。一般屬性設置為私有,通過使用getXXX()和setXXX()方法進行屬性的讀取和設置第八章EL表達式EL運算符略EL表達式的操作符操作符功能和作用.訪問一個bean屬性或者Mapentry[]訪問一個數(shù)組或者鏈表兀素()對子表達式分組,用來改變賦值順序?:條件語句,比如:條件?ifTrue:ifFalse如果條件為真,表達式值為前者,反之為后者+數(shù)學運算符,加操作_數(shù)學運算符,減操作或者對一個值取反*數(shù)學運算符,乘操作/或div數(shù)學運算符,除操作%或數(shù)學運算符,模操作(取余)==或eq邏輯運算符,判斷符號左右兩端是否相等,如果相等返回true,否則返回false!=或ne邏輯運算符,判斷符號左右兩端是否不相等,如果不相等返回true,否則返回false<或lt邏輯運算符,判斷符號左邊是否小于右邊,如果小于返回true,否則返回false>或gt邏輯運算符,判斷符號左邊是否大于右邊,如果大于返回true,否則返回false<=或le邏輯運算符,判斷符號左邊是否小于或者等于右邊,如果小于或者等于返回true,否則返回false>=或ge邏輯運算符,判斷符號左邊是否大于或者等于右邊,如果大于或者等于返回true,否則返回false&&或and邏輯運算符,與操作賦。如果左右兩邊同為true返回true,否則返回falseII或or邏輯運算符,或操作賦。如果左右兩邊有任何一邊為true返回true,否則返回false!或not邏輯運算符,非操作賦。如果對true取運算返回false,否則返回trueempty用來對一個空變量值進行判斷:null、一個空String、空數(shù)組、空Map、沒有條目的Collection集合func(args)調(diào)用方法,func是方法名,args是參數(shù),可以沒有,或者有一個、多個參數(shù).參數(shù)間用逗號隔開EL內(nèi)置對象對應4個存儲范圍的內(nèi)置對象:applicationScopesessionScoperequestScopepageScope語法:${applicationS}${sessionS}${requestS}${pageS}有輸入相關的內(nèi)置對象,對應request.getParameter(Stringname)和request.getParameterValues(Stringname)語法:${}${paramV[i]}與報頭相關的內(nèi)置對象,header內(nèi)置對象語法:${header[“headerNamew]}pageContext內(nèi)置對象${pageContext.XXX.XXX}EL存取器使用EL存取器(也稱導航)可以訪問JavaBean、Map、對象數(shù)組和List等中的數(shù)據(jù),比腳本代碼量少,更易維護。第九章JSTL標簽庫JSTL:JSPStandardTagLibraryJSP標準標簽庫分為:Core標簽庫、XMLprocessing標簽庫、I18Nformatting標簽庫、Databaseaccess標簽庫、Functions標簽庫標簽庫URI前綴Core/jsp/jstl/corecXMLprocessing/jsp/jstl/xmlxI18Nformatting/jsp/jstl/fmtfmtDatabaseaccess/jsp/jstl/sqlsqlFunctions/jsp/jstl/functionsfnCore標簽庫:<%@taglibprefix="c"uri="/jsp/jstl/core”%>Core標簽庫,又被稱為核心標簽庫,該標簽庫的工作是對于JSP頁面一般處理的封裝。在該標簽庫中的標簽一共有14個,被分為了四類,分別是:多用途核心標簽:<c:out>、<c:set>、<c:remove>、<c:catch>。

條件控制標簽:<c:if>、<c:choose>、<c:when>、<c:otherwise>。循環(huán)控制標簽:<c:forEach>、<c:forTokens>。URL相關標簽:<c:import>、<c:url>、<c:redirect>、<c:param>。<c:out>用于顯示的<c:out>標簽<c:outvalue="${sessionScope.anyValue}"default="novalue"escapeXml="false"/>屬性描述value輸出到頁面的數(shù)據(jù),可以是EL表達式或常量(必須)default當value為null時顯示的數(shù)據(jù)(可選)escapeXml當設置為true時會主動更換特殊子付,比如,<,>,&”(可選,默認為true)<c:set>用于賦值的<c:set>標簽<c:setvalue="thisisandy"var="oneString"/>${oneString}<br>屬性描述value值的信息,可以是EL表達式或常量target被賦值的JavaBean實例的名稱,若存在該屬性則必須存在property屬性(可選)propertyJavaBean實例的變量屬性名稱(可選)var被賦值的變量名(可選)scope變量的作用范圍,若沒有指定,默認為page(可選)<c:remove>用于刪除的<c:remove>標簽<c:remove>標簽用于刪除存在于scope中的變量。<c:removevar="sampleValue"scope="session"/>${sessionScope.sampleValue}<br>屬性描述var需要被刪除的變量名scope變量的作用范圍,若沒有指定,默認為全部查找(可選)用于異常捕獲的<c:catch>標簽<c:catch>標簽允許在JSP頁面中捕捉異常。它包含一個var屬性,是一個描述異常的變量,改變量可選。若沒有var屬性的定義,那么僅僅捕捉異常而不做任何事情,若定義了var屬性,則可以利用var所定義的異常變量進行判斷轉(zhuǎn)發(fā)到其他頁面或提示報錯信息。看一個示例。<c:catchvar="err">${param.sampleSingleValue[9]==3}</c:catch>${err}當“${param.sampleSingleValue[9]==3},表達式有異常時,可以從var屬性“err”得到異常的內(nèi)容,通常判斷“er是否^null來決定錯誤信息的提示。用于判斷的<c:if>標簽<c:if>標簽用于簡單的條件語句。它的屬性和描述如表所示:<c:if>標簽屬性和說明<c:iftest="${paramValues.sampleValue[2]==12}"var="visits">Itis12</c:if><br>${visits}<br>屬性描述test需要判斷的條件var保存判斷結(jié)果true或false的變量名,該變量可供之后的工作使用(可選)scope變量的作用范圍,若沒有指定,默認為保存于page范圍中的變量(可選)用于復雜判斷的<c:choose>、<c:when>、<c:otherwise>標簽這三個標簽用于實現(xiàn)復雜條件判斷語句,類似"if,elseif”的條件語句。<c:choose>標簽沒有屬性,可以被認為是父標簽,<c:when>、<c:otherwise>將作為其子標簽來使用。<c:when>標簽等價于“if”語句,它包含一個test屬性,該屬性表示需要判斷的條件。<c:otherwise>標簽沒有屬性,它等價于“else”語句。<c:choose><c:whentest="${paramValues.sampleValue[2]==11}">not12not13,itis11</c:when><c:whentest="${paramValues.sampleValue[2]==12}">not11not13,itis12</c:when><c:whentest="${paramValues.sampleValue[2]==13}">not11not12,itis13</c:when><c:otherwise>not11、12、13</c:otherwise></c:choose>用于循環(huán)的<c:forEach>標簽<c:forEach>為循環(huán)控制標簽。屬性描述items進行循環(huán)的集合(可選)begin開始條件(可選)end結(jié)束條件(可選)step循環(huán)的步長,默認為1(可選)var做循環(huán)的對象變量名,若存在items屬性,則表示循環(huán)集合中對象的變量名(可選)varStatus顯示循環(huán)狀態(tài)的變量(可選)下面看一個集合循環(huán)的示例。<%ArrayListarrayList=newArrayList();arrayList.add("aa");arrayList.add("bb");arrayList.add("cc");%><%request.getSession().setAttribute("arrayList”,arrayList);%><c:forEachitems="${sessionScope.arrayList}"var="arrayListI">$(arrayListI}</c:forEach>下面看一個簡單循環(huán)的示例。<c:forEachvar="i"begin=Tend="10"step="1">${i}<br/></c:forEach>該示例從“1”循環(huán)到“10”,并將循環(huán)中變量“i”顯示在頁面上。用于分隔字符的<c:forTokens>標簽<c:forTokens>標簽可以根據(jù)某個分隔符分隔指定字符串,相當于java.util.StringTokenizer類。它的屬性和描述如表9.8所示:表9.8<c:forTokens>標簽屬性和說明屬性描述items進彳丁分隔的EL表達式或常量delims分隔符begin開始條件(可選)end結(jié)束條件(可選)step循環(huán)的步長,默認為1(可選)var做循環(huán)的對象變量名(可選)varStatus顯示循環(huán)狀態(tài)的變量(可選)下面看一個示例。<c:forTokensitems="aa,bb,cc,dd"begin="0"end="2"step="2"delims=","var="aValue">${aValue}</c:forTokens>需要分隔的字符串為“aa,bb,cc,dd”,分隔符為“,”。begin屬性指定從第一個“,”開始分隔,end屬性指定分隔到第三個“,”,并將做循環(huán)的變量名指定為“aValue”。由于步長為“2”,使用EL表達式${aValue}只能顯示“aa

用于包含頁面的<直import><c:import>標簽允許包含另一個JSP頁面到本頁面來。它的屬性和描述如表所示:<c:import>標簽屬性和說明屬性描述url需要導入頁面的URLcontextWebContext該屬性用于在不同的Context卜導入頁面,當出現(xiàn)conte

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論