版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
JSP注在JSP中支持兩種注釋的語(yǔ)法操作,一種是顯示注釋,這種注釋客戶端是允許見(jiàn)的;另外一種是隱式注釋,此種注釋客戶端是無(wú)法看見(jiàn)的顯示注釋語(yǔ)法格<!–注釋內(nèi)容隱式注釋語(yǔ)法格//注釋,單行注/*注釋*多行注<%--注釋--%>,JSP注實(shí)例:定義顯示和隱式注<%--JSP//JavaJava程序運(yùn)行后,頁(yè)面上不會(huì)顯示任何內(nèi)容,此時(shí)可以通過(guò)在頁(yè)面中單擊鼠標(biāo)右選擇查看源文件,即可看到結(jié)果在JP中,最重要的部分就是crt(小程序),所有嵌入在TM代碼Jcrtt標(biāo)記出來(lái)。在JSP中一共有種crtt第一種:第二種第三種第一種第一種Scriptlet使用<%%>表示,在此Scriptlet中可以定義局部變量、編寫語(yǔ)句,如下代碼所示實(shí)例:第一種intStringinfo=" 本程序定義了i和info兩個(gè)局部變量,然后編寫輸出語(yǔ)句,讓兩個(gè)變量直接在瀏器中輸出第二種第二種Scriptlet使用<%!%>表示,在此Scriptlet中可以定義全局變量、方法實(shí)例:第二種publicstaticfinalStringINFO= publicintadd(intx,inty){returnx+y;}classprivateStringprivateintpublic(Stringname,int}publicStringreturn}本程序分別在<%!%>中定義了全局常量、方法、類,但是因?yàn)椤?lt;%!%>”中不能出現(xiàn)任何其他的語(yǔ)句,所以編寫了一個(gè)普通的“注意:盡量不要在JSP中定義類或方“!確發(fā)思很戶這樣操作。當(dāng)J中需要類或者方法時(shí),往往會(huì)通過(guò)JavBn的形式調(diào)用,第三種第三種Scriptlet的主要功能是輸出一個(gè)變量或者一個(gè)具體的常量,使用<%=%>形式完成,有時(shí)也將其稱為表達(dá)式輸出實(shí)例:使用表達(dá)式輸Stringinfo=" inttemp=20;<h2>temp=<%=temp本程序使用表達(dá)式的同時(shí)輸出了變量以及常量,而且使用這種方式輸出可以的將HTML代碼和Java代碼進(jìn)行分離提示我們已經(jīng)學(xué)習(xí)過(guò)使用t.rl)和輸出的形式,那么在開(kāi)發(fā)中使用哪種輸出方式更好呢?JSP)程序產(chǎn)生的變量,那么這時(shí)使用表達(dá)式輸出就比使用out.println()更加方。下面通過(guò)兩個(gè)實(shí)例來(lái)證實(shí)使用表達(dá)式輸出比使用out.println()輸出JP中輸出x10格,并在每個(gè)表格顯示‘行數(shù)x列數(shù)’的結(jié)果,下面使用t.t)和表到時(shí)輸實(shí)例:使用out.println()輸introws=10;intcols=10;for(inti=0;i<rows;i++){for(intj=0;j<cols;j++){}}本程序采用for循環(huán)的方式完成了輸出,但是,這樣的輸出會(huì)使程序代碼,為是將HTML和Java代碼緊密耦合在一起,所有的HTML代碼由out.println()輸,則以后的調(diào)試會(huì)很麻煩。所以最好的做法是將HTML代碼和Java代碼進(jìn)行分。實(shí)例:使用表達(dá)式輸<tableborder="1"intintfor(intfor(int<td><%=(i*j)<%}<%}TM代碼和J代碼分離的作用,這樣的代碼以后在使用類似于rmW但是,有些同學(xué)可能認(rèn)為以上代碼太復(fù)雜了,要寫很多的Scriptlet代碼,看起會(huì)有些亂,在這里給大家一個(gè)建議:一定要熟悉以上的代碼編寫,在以后的中將會(huì)對(duì)這種代碼進(jìn)行不斷的優(yōu)化,使之更容易讀懂,一定記住,絕對(duì)不能Out.println()進(jìn)行輸出而且在以上的代碼的編寫中,如果一個(gè)for語(yǔ)句寫在了多個(gè)Scriptlet中,一定要上{},否則程序會(huì)出現(xiàn)錯(cuò)誤實(shí)際上,將以上代碼進(jìn)行進(jìn)一步擴(kuò)充,可以充分的發(fā)揮動(dòng)態(tài)W,的和,提給JS進(jìn)行表格的顯示實(shí)例:定義輸入顯示表格行數(shù)和列數(shù)的表<tableborder="1"<td>輸入要顯示表格的行數(shù)<td><inputtype="text"<td>輸入要顯示表格的行數(shù)<td><inputtype="text"<td<inputtype="submit"value="顯示<inputtype="reset"value="重置實(shí)例:處理表格的顯<tableborder="1"intintcols=Integer.parseInt(request.getParameter("cols"));for(inti=0;i<rows;i++){for(int<td><%=(i*j)<%}<%}這是前臺(tái)的表單即可通過(guò)輸入數(shù)據(jù)控制的表格顯示,也很好的體現(xiàn)出動(dòng)Web的交互性在程序中如果過(guò)多的出現(xiàn)%會(huì)導(dǎo)致代碼,所以在新版本的JS中提供了種crt此完與%同樣的功能。此的語(yǔ)法如下:Javascriptlet代實(shí)例:使用String <h2><%=url可以發(fā)現(xiàn),使用crt與使用%%的效果是一樣的,但是否使用此在開(kāi)發(fā)中并沒(méi)有嚴(yán)格的規(guī)定,唯一的好處就在于這種方更加美觀一些。Page指指令在J開(kāi)發(fā)中較為重要,使用此屬性,可以定義一個(gè)JS頁(yè)面的相關(guān)屬M(fèi)M類型、定義需要導(dǎo)入的包、錯(cuò)誤頁(yè)面的指定等。下表中定義了指令常用屬性。指令屬描1t或ftr,當(dāng)緩沖區(qū)滿時(shí),將會(huì)出現(xiàn)異常,表示緩沖區(qū)溢出。默認(rèn)為tu,如t=“t”.2指定到客戶端輸出流的緩沖模式。如果為ne,則表示不設(shè)置緩沖區(qū);如果指定為數(shù)值,那么輸出時(shí)就必須使用不小于這個(gè)值的緩沖區(qū)進(jìn)行緩沖。此屬性要和tosh一起使用。k,根據(jù)不同的服務(wù)器可以進(jìn)行不同設(shè)置。3定義JSP字符的編碼和頁(yè)面響應(yīng)的MIME類型,如果是中文HTML顯示,則使用如下形式4定義此頁(yè)面出錯(cuò)時(shí)要跳轉(zhuǎn)的顯示頁(yè),如errorPage=“error.jsp”,要與isErrorPage屬性一使5主要定義此JSP頁(yè)面產(chǎn)生的Servlet是從哪個(gè)父類擴(kuò)展來(lái)的,如extends=“父類名稱6此JSP頁(yè)面需要導(dǎo)入哪幾個(gè)操作包,如7此JSP頁(yè)面的信息,如8可以設(shè)置為true或false,表示此頁(yè)面是否為出錯(cuò)的吃力頁(yè)。如果設(shè)置為true,則指定的頁(yè)面出錯(cuò)時(shí)才能跳轉(zhuǎn)到此頁(yè)面進(jìn)行錯(cuò)誤處理;如果設(shè)置為false則無(wú)法處9可以設(shè)置為t或f,表示此頁(yè)面是否是線程安全的。如果為tr表示一個(gè)JSP頁(yè)面可以處理多個(gè)用戶的請(qǐng)求;如果為fs,則此JSP一次只能處理一個(gè)用戶請(qǐng)求。用來(lái)定義要使用的語(yǔ)言,目前只能是java,如mrt指令可以重復(fù)出現(xiàn)多次,而對(duì)于其他屬性只能出現(xiàn)一次。而且在以上若干指令中,比較常用的是ctaedngrP/srrPe和mrt分別看這些指令的使用。Page指令語(yǔ)<%@page屬性=“內(nèi)容設(shè)置頁(yè)面的在page指令中,contentType屬性是使用最多的一個(gè)屬性,如果想讓一個(gè)JSP件顯示中文,則必須對(duì)整個(gè)頁(yè)面指定MIME說(shuō)明什么是MIME?有什么作用許多文件都是存在擴(kuò)展名的,如.dc、.hm,根據(jù)這些不同的擴(kuò)展名可以打開(kāi)不同的應(yīng)用程序,那么MI(MutpseIntMlxtess,多功能In郵件擴(kuò)充服務(wù))就是指定某個(gè)擴(kuò)展名文件將使用何種應(yīng)用程序打開(kāi)的一個(gè)說(shuō)明。當(dāng)該擴(kuò)展名文件被時(shí),瀏覽器會(huì)自動(dòng)指定某應(yīng)用程序來(lái)運(yùn)行。實(shí)例:為JSP頁(yè)面指定編<h2>歡迎光臨我們的<h3> 本程序在page指令中指定了要使用的開(kāi)發(fā)語(yǔ)言是java,然后通過(guò)contentType行設(shè)置,本頁(yè)面是按照HTML文本文件(text/html)進(jìn)行顯示,頁(yè)面編(charset)是GBK程序運(yùn)行結(jié)果提示:MIME類型設(shè)置錯(cuò)誤,也可能出現(xiàn)提示假設(shè)contentType=“text/html;charset=GBK”改寫為我們從mct安裝 /cnf/.xml中可以查詢到所有已知的MIME類型,例如,如果現(xiàn)在希望頁(yè)面可以按照r文檔的形式顯示,則可以使用如下的MIME類型:<mime-map<mime-type>application/msword</mime-</mime- 實(shí)例使用word進(jìn)行頁(yè)面顯<%@pagelanguage="java"<table<tr><td>歡迎光臨我們的<tr><td> <tr><td>本頁(yè)面使用word顯示本程序運(yùn)行后,將出現(xiàn)如下所示提示框,提示是保存在本地還是使用word點(diǎn)擊打開(kāi)按鈕后,在本地磁盤通過(guò)word程序打開(kāi),即可看到如下所示我們之前顯示的word文件時(shí),發(fā)現(xiàn)默認(rèn)的文件名稱就是執(zhí)行的JSP名稱,么如果想要為一個(gè)的文件起一個(gè)自己的指定的名稱,該如果做呢可以通過(guò)Response對(duì)象完成設(shè)置,Response對(duì)象表示的是服務(wù)器對(duì)客戶端應(yīng),可以通過(guò)設(shè)置頭信息的方式指定的文件名稱<table<%response.setHeader("Content- <tr><td>歡迎光臨我們的<tr><td> <tr><td>本頁(yè)面使用word顯示此時(shí),再執(zhí)行本頁(yè)面是,將出現(xiàn)如下所示設(shè)置文件編在之前的操作代碼中,除了使用cteeMIME類型外,還是用crspe命令中也可以使用pgEdg碼的指定,如下所示。<h2>本頁(yè)使用了pageEncoding屬性,將整個(gè)頁(yè)面的編碼設(shè)置成GBK。程序的運(yùn)行果如下所示使用contentType和pageEncoding設(shè)置編碼有什么區(qū)別之前講解的contentType也可以使用charset設(shè)置編碼,那么這個(gè)和使pageEncoding設(shè)置有什么區(qū)別呢PageEncoding指的是JSP文件本身的編碼,而contentType中的charset指的是務(wù)器發(fā)送給客戶端的內(nèi)容編碼在J中,所有內(nèi)容都經(jīng)過(guò)兩次的編碼啊操作,第一階段會(huì)使用pecoig編f-mc生成的網(wǎng)頁(yè),此時(shí)使用的才是ct。從一般的開(kāi)發(fā)來(lái)講,如果一個(gè)JSP頁(yè)面只需要按照網(wǎng)頁(yè)顯示(text/html),則用pageEncoding設(shè)置編碼即可錯(cuò)誤頁(yè)的設(shè)W站點(diǎn)中,大家經(jīng)常會(huì)發(fā)現(xiàn)這樣的一個(gè)功能:當(dāng)一個(gè)頁(yè)面出錯(cuò)后,要想完成錯(cuò)誤頁(yè)的操作,則一定滿足以下兩個(gè)條指定錯(cuò)誤出現(xiàn)時(shí)的跳轉(zhuǎn)頁(yè),通過(guò)errorPage屬性指定錯(cuò)誤處理頁(yè)必須明確的標(biāo)識(shí),通過(guò)isErrorPage屬性指定即如果一個(gè)JS頁(yè)面運(yùn)行時(shí)出現(xiàn)了錯(cuò)誤,會(huì)通過(guò)rPe指定的頁(yè)面進(jìn)行跳轉(zhuǎn),被跳轉(zhuǎn)的頁(yè)面中必須將srre的內(nèi)容設(shè)置為true。錯(cuò)誤頁(yè)指定的操作流程如
實(shí)例:會(huì)出現(xiàn)錯(cuò)誤的頁(yè)<%@pageerrorPage="error.jsp"%><%--一旦程序出現(xiàn)錯(cuò)誤則直接跳轉(zhuǎn)error.jsp頁(yè)面int<h2>本程序在計(jì)算10/0是將產(chǎn)生算數(shù)異常,而由于程序指定了errorPage,所以發(fā)生異常,頁(yè)面將跳轉(zhuǎn)到error.jsp進(jìn)行顯示實(shí)例:錯(cuò)誤處理<%@page<h1>程序出現(xiàn)了錯(cuò)誤注意:錯(cuò)誤頁(yè)面的跳轉(zhuǎn)屬于服務(wù)器從以上的運(yùn)行結(jié)果可以發(fā)現(xiàn),一旦發(fā)生錯(cuò)誤后,頁(yè)面的顯示內(nèi)容將變成rr.jspso.jsp。也就是說(shuō),此時(shí),內(nèi)容顯示雖通過(guò)超,可以讓一個(gè)頁(yè)面跳轉(zhuǎn)到其他頁(yè)面,但是跳轉(zhuǎn)后地址欄信息發(fā)生了改變,所以這種方式也就相當(dāng)于客戶端跳轉(zhuǎn)。以上的錯(cuò)誤頁(yè)是在每一個(gè)JSP頁(yè)面中指定的,當(dāng)然,也可以在整個(gè)虛擬中指全局的錯(cuò)誤處理可以處理兩種類型的錯(cuò)誤,一種是HTTP代碼的錯(cuò)誤,如404500;還有一種是異常的錯(cuò)誤,如NullPointerException等實(shí)例:修改web.xml文件加入錯(cuò)誤處<error-<error-code>500</error-</error-<error-<error-code>404</error-</error-<error-<exception-type>java.lang.NullPointerException</exception-</error-05的TTr.jsp頁(yè)面進(jìn)行處理。但是,此時(shí)跳轉(zhuǎn)過(guò)去,地址欄同樣不會(huì)有任何變化,所以依然是服務(wù)器跳轉(zhuǎn)。提示:有時(shí)候可能出現(xiàn)無(wú)法跳轉(zhuǎn)的錯(cuò)誤頁(yè)<%@page數(shù)據(jù)庫(kù)連接操在page指令中可以使用import導(dǎo)入所需要的java開(kāi)發(fā)包,所以直接利用此屬性java.sql包導(dǎo)入進(jìn)來(lái),即可進(jìn)行數(shù)據(jù)庫(kù)的開(kāi)發(fā)操作實(shí)例:將oracle數(shù)據(jù)庫(kù)中的emp表中的信息查詢出來(lái)顯示在<%@pageimport="java.sql.*"<title>連接數(shù)據(jù)庫(kù)<tableborder="1"publicstaticfinalStringpublicstaticfinalString<td>員 <td>員 <td>員工職位try}catch(ClassNotFoundExceptione)}Connectionconn=null;PreparedStatementpstat=null;ResultSetrs=null;Stringsql="selectempno,ename,jobfromtryconn=DriverManager.getConnection(URL,"scott","OracleAdmin1");pstat=conn.prepareStatement(sql);rs=intempno=rs.getInt(1);Stringename=rs.getString(2);Stringjob=rs.getString(3);<td><%=empno<td><%=ename<td><%=job<%}<%}catch(Exceptione)//TODOAuto-generatedcatchblock}}包含指在一般的頁(yè)面開(kāi)發(fā)中會(huì)有很多內(nèi)容重復(fù)的顯示。例如,在一般的站點(diǎn)中,都照一下結(jié)構(gòu)進(jìn)行內(nèi)容的顯示讓每一個(gè)頁(yè)面都分別包含、頁(yè)面頭部、頁(yè)面尾部的代將、頁(yè)面頭部、頁(yè)面尾部分別做成一個(gè)文件,然后在需要的地方導(dǎo)入(包含)。有很多重復(fù)的代碼,以后時(shí)會(huì)很麻煩。要想實(shí)現(xiàn)這樣的包含功能,在JSP中可以通過(guò)靜態(tài)包靜態(tài)包含指令是在J編譯時(shí)一個(gè)包含文本或代碼的文件,這個(gè)包含的過(guò)程JS文件、TM文件、文本文件,或是一段Ja程序。注意:在每一個(gè)完整的頁(yè)面中,對(duì)m/hm/hd/bod>這幾個(gè)元素只能出現(xiàn)一次,如果重復(fù)出現(xiàn),則可能會(huì)造成顯示上的錯(cuò)誤。格式:靜態(tài)包含語(yǔ)<%@includefile=“要包含的文件路徑實(shí)例:定義3個(gè)要包含的文件-info.html、info.jsp、Info.html的內(nèi)容<fontInfo.jsp文件內(nèi)容Info.inc文件內(nèi)<font將以上3個(gè)文件和下面的include_demo.jsp文件放在同一個(gè)文件夾實(shí)例:使用靜態(tài)包含指令包含以上3個(gè)文<%@pagelanguage="java"<title>MyJSP'include_demo.jsp'starting<h1>靜態(tài)包含操作<%@includefile="info.html"<%@includefile="info.jsp"<%@includefile="info.inc"本程序?qū)⒅暗?個(gè)文件的內(nèi)容全部包含進(jìn)來(lái),包含時(shí)不管文件的后綴是什都會(huì)將內(nèi)容直接包含并顯示個(gè)文件的內(nèi)容導(dǎo)入到cmjsp中,然后再一起進(jìn)行編譯,最后再將一份整體的內(nèi)容展現(xiàn)給用包含包含包含動(dòng)態(tài)包使用jsc指令可以完成動(dòng)態(tài)包含的操作,與之前的靜態(tài)包含不同,動(dòng)態(tài)<jsp:includepage=“{要包含的文件路徑|<%=表達(dá)式>}”傳遞參數(shù)<jsp:includepage=“{要包含的文件路徑|<%=表達(dá)式>}”<jsp:paramname=“參數(shù)名稱”value=“參數(shù)內(nèi)容…可以向被包含頁(yè)面中傳遞多個(gè)參fhtrefs兩種類型,當(dāng)其設(shè)置成fse這個(gè)網(wǎng)頁(yè)完全被讀進(jìn)來(lái)以后才輸出。在每一個(gè)JS的都會(huì)有一個(gè)fr,所以如果是tr,當(dāng)fr滿了就輸出,一般此屬性都會(huì)設(shè)置為tr,當(dāng)然也可以不tru。注意:此語(yǔ)法為指令,指令必須完js這樣語(yǔ)法式屬于指令形式,所有的指令必須完結(jié),可以使用或是jsc>的形式,前者是在不傳遞參數(shù)時(shí)使用,后者是在傳遞使用指令包含4.5.1小節(jié)中的3個(gè)頁(yè)<%@pagelanguage="java"<title>MyJSP'include_demo.jsp'starting<h1>靜態(tài)包含操作<jsp:includepage="info.jsp"<jsp:includepage="info.inc"本程序?qū)?個(gè)靜態(tài)包含的語(yǔ)句直接修改為動(dòng)態(tài)包含,頁(yè)面的運(yùn)行效果如下使用動(dòng)態(tài)包含的第二種語(yǔ)法形式可以向被包含的頁(yè)面中傳遞參數(shù),被包含的可以使用request.getParameter()方法進(jìn)行參數(shù)的接收實(shí)例:定義被包含頁(yè),并接受傳遞的參數(shù)-<%@pagelanguage="java"<h1>參數(shù)一:<%=request.getParameter("name")<h1>參數(shù)二:<%=request.getParameter("info")本頁(yè)面使用rst.getparmr(接收兩個(gè)請(qǐng)求參數(shù),這兩個(gè)參數(shù)要從包含頁(yè)面中傳遞過(guò)來(lái)。實(shí)例:定義包含頁(yè),并參數(shù)-<%@pagelanguage="java"<title>MyJSP'include_demo.jsp'startingString<h1>動(dòng)態(tài)包含并傳遞參數(shù)操作<jsp:paramname="info" 本程序通過(guò)<jsp:param>向被包含頁(yè)面中傳遞了兩個(gè)參數(shù),由于第一個(gè)參數(shù)的容是變量,所以要使用表達(dá)式輸出;第二個(gè)參數(shù)的內(nèi)容直接寫在語(yǔ)句中,而<jsp:param>本身也屬于指令形式,所以必須完結(jié)程序運(yùn)行如下提問(wèn):兩種包含語(yǔ)句,使用哪種更好之前的c和jscd>的操作形式非常相似,在使用上有什么區(qū)別呢?在實(shí)際開(kāi)發(fā)中使用哪種更好哦?屬于先處理后包含。為了驗(yàn)證以上的問(wèn)題我們來(lái)編寫一個(gè)實(shí)例實(shí)例:定義被包含的動(dòng)態(tài)頁(yè)-<%@pagelanguage="java"int<h1>include.jsp<%=x然后使用靜態(tài)包含頁(yè)面的操作導(dǎo)入以上的頁(yè)面,而且在此頁(yè)面中定義一個(gè)x量為實(shí)例:定義靜態(tài)包含處理頁(yè)-<%@pagelanguage="java"<title>MyJSP'include_demo.jsp'startingintx,造成這樣的問(wèn)題的根本原因就是,靜態(tài)包含是先將全部的內(nèi)容包含在一起,然后在編譯,這樣一來(lái),x而如果使用動(dòng)態(tài)包含的操作,就可以避免以上的問(wèn)題,因?yàn)閯?dòng)態(tài)包含中如果含的頁(yè)面是動(dòng)態(tài)頁(yè),則會(huì)先分別進(jìn)行處理,然后在包含處理后的結(jié)果實(shí)例定義動(dòng)態(tài)包含頁(yè)<%@pagelanguage="java"<title>MyJSP'include_demo.jsp'startingint<jsp:include使用動(dòng)態(tài)包含后,頁(yè)面可以正常的執(zhí)行跳轉(zhuǎn)指在web中可以使用<jsp:forward>指令,將一個(gè)用戶的請(qǐng)求(request)從一個(gè)頁(yè)遞到另外一個(gè)頁(yè)面,即完成跳轉(zhuǎn)的操作格式:頁(yè)面跳轉(zhuǎn)語(yǔ)不傳遞參數(shù)<jsp:forwardpage=“{要包含的文件路徑|<%=表達(dá)式傳遞參數(shù)<jsp:forwardpage=“{要包含的文件路徑|<%=表達(dá)式<jsp:paramname=“參數(shù)名稱”value=“參數(shù)內(nèi)容…可以向被包含頁(yè)面中傳遞多個(gè)參從語(yǔ)法中可以發(fā)現(xiàn),跳轉(zhuǎn)指令與之前的動(dòng)態(tài)包含指令的語(yǔ)法非常相似,只是的功能不同,而且使用此語(yǔ)句也可以向跳轉(zhuǎn)后的頁(yè)面?zhèn)鬟f參數(shù)注意:跳轉(zhuǎn)指令必須完這里再次提醒大家,對(duì)于這種指令形式的語(yǔ)句,在最后一定要完結(jié),跳轉(zhuǎn)令也屬于 指令,所以使用時(shí)也必須完結(jié)。實(shí)例:跳轉(zhuǎn)頁(yè)-<%@pagelanguage="java"Stringusername=<jsp:forward<jsp:paramvalue="<%=username%>"<jsp:param "實(shí)例:在跳轉(zhuǎn)后的頁(yè)面中進(jìn)行參數(shù)的接收-<%@page<h1>這是跳轉(zhuǎn)之后的頁(yè)面<h2>參數(shù)一:<%=request.getParameter("name")<h2>參數(shù)二:<%=request.getParameter("info")以上的程序執(zhí)行fm.jspfdm.jsp頁(yè)面,并將兩個(gè)參數(shù)傳遞到fdm.jsp中顯示。執(zhí)行的結(jié)果如下:實(shí)例操作:用戶登錄程序?qū)崒W(xué)習(xí)完JSP基礎(chǔ)語(yǔ)法后,即可利用這些知識(shí)點(diǎn)完成一個(gè)簡(jiǎn)單的登錄程序,本程采用和之前一樣的操作形式,使用JSP+JSBC實(shí)現(xiàn)創(chuàng)建數(shù)據(jù)庫(kù)想要完成用戶登錄的操作,首先應(yīng)該準(zhǔn)備一張user表,此表的結(jié)構(gòu)如下所1保存用戶的登錄23程序?qū)崿F(xiàn)思首先,如果想要完成用戶登錄,則一定有一個(gè)表單頁(yè),此頁(yè)面可以輸入用戶的登和提一證的JS頁(yè)面上進(jìn)行數(shù)據(jù)庫(kù)的操作驗(yàn)證,如果可以查詢到此用戶名和,那么就表示此用戶是合法用戶,則可以跳想要完成以上功能,可以建立下表所示的JSP頁(yè)1提供用戶的登錄表單,可以輸入用戶id2成功跳轉(zhuǎn)到登錄成功頁(yè),跳轉(zhuǎn)到登錄失敗34程序?qū)崒?shí)例:登錄表單頁(yè)-<!DOCTYPE<h1>登錄操作<formaction="login_check.jsp"<table<tdcolspan="2">用戶登錄<td>登錄<td><inputtype="text"<td>登錄<td><inputtype="password"<td<inputtype="submit"value="登錄<inputtype="reset"value="重置實(shí)例:登錄驗(yàn)證-<%@pagelanguage="java"import="java.sql.*"<title>MyJSP'login_check.jsp'starting//定義數(shù)據(jù)庫(kù)驅(qū)動(dòng)程publicstaticfinalpublicstaticfinalStringpublicstaticfinalStringpublicstaticfinalStringConnectionconn=null;PreparedStatementpstat=null;ResultSetrs=null;booleanflag=Stringnatryconn=DriverManager.getConnection(URL,us
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年勞務(wù)派遣補(bǔ)充協(xié)議模板2
- 2024樓宇消防設(shè)施更新施工協(xié)議
- 2024年度文化活動(dòng)贊助商協(xié)議范本
- 2024年著作權(quán)保護(hù)訴訟代理合作協(xié)議
- 2024年綜合性會(huì)議服務(wù)協(xié)議精簡(jiǎn)
- 2024年雙方權(quán)益保障增補(bǔ)協(xié)議書(shū)
- 2024年建筑委托施工項(xiàng)目協(xié)議書(shū)
- 吊籃設(shè)備租賃化協(xié)議范本2024
- 2024專業(yè)協(xié)議封面模板全面升級(jí)
- 2024年企業(yè)員工車輛租賃協(xié)議條款
- 四環(huán)節(jié)教學(xué)心得體會(huì)
- 電力系統(tǒng)經(jīng)濟(jì)學(xué)原理(第2版) 課件全套 第1-8章 引言、經(jīng)濟(jì)學(xué)基本概念-輸電投資
- 對(duì)數(shù)運(yùn)算課件
- 0324心臟瓣膜病課件
- 2020年1月自考00804金融法二試題及答案含解析
- 看花識(shí)草辨藥材(山東聯(lián)盟)智慧樹(shù)知到期末考試答案2024年
- (高清版)DZT 0426-2023 固體礦產(chǎn)地質(zhì)調(diào)查規(guī)范(1:50000)
- 中國(guó)經(jīng)濟(jì)增長(zhǎng)現(xiàn)狀及未來(lái)前景分析報(bào)告
- 龍井營(yíng)銷方案
- 非哺乳期乳腺炎診治專家共識(shí)
- 2024初中數(shù)學(xué)課程標(biāo)準(zhǔn)測(cè)試題(含答案)精華版
評(píng)論
0/150
提交評(píng)論