JSP語法與內(nèi)置對象_第1頁
JSP語法與內(nèi)置對象_第2頁
JSP語法與內(nèi)置對象_第3頁
JSP語法與內(nèi)置對象_第4頁
JSP語法與內(nèi)置對象_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

JSP語法與內(nèi)置對象第一頁,共50頁。內(nèi)容提要4JSP語法1235主題網(wǎng)站網(wǎng)上調(diào)查內(nèi)置對象總結(jié)與提高第二頁,共50頁。學(xué)習(xí)目標掌握JSP的基本語法熟練使用JSP內(nèi)置對象掌握JSP開發(fā)環(huán)境JSP內(nèi)置對象概念和意義操作使用JSP基本語法JSP內(nèi)置對象JSP的語法規(guī)范常用內(nèi)置對象應(yīng)用主題網(wǎng)站設(shè)計網(wǎng)上調(diào)查第三頁,共50頁。預(yù)備知識——page指令實例:<%@pagecontentType=“text/html;charset=utf-8”pageEncoding=‘utf-8’%>作用:指定JSP頁面的格式和文字編碼(JSP程序必需);實例:<%@pageimport="java.io.*,java.util.Date"%>作用:為JSP頁面引入java核心包中的類,可指定多個值??偨Y(jié):page指令用來定義整個JSP頁面的一些屬性和這些屬性的值。第四頁,共50頁。預(yù)備知識——靜態(tài)include指令格式:<%@includefile=“要插入的文件名“%>說明:文件可以是下列格式:HTML文件;JSP文件;文本文件;Java文件……總結(jié):把一個文件插入到當前JSP頁面,合并成一個新的JSP頁面第五頁,共50頁。知識儲備——JSP注釋JSP程序注釋格式:<%--注釋內(nèi)容--%>

注意:在注釋內(nèi)容中,可以出現(xiàn)除--%>之外的任何內(nèi)容,若需使用,必須使用轉(zhuǎn)義字符“--%\”表示客戶端注釋格式:<!—客戶端嵌入注釋內(nèi)容-->

客戶端動態(tài)注釋:格式:<!--靜態(tài)注釋內(nèi)容<%=表達式%>靜態(tài)注釋內(nèi)容-->客戶端注釋嵌入動態(tài)數(shù)據(jù),動態(tài)數(shù)據(jù)通過表達式來表示客戶端注釋是指在客戶端HTML源碼中顯示的注釋,JSP引擎不做任何解釋,直接輸出到客戶端HTML源碼

JSP程序注釋是對JSP程序進行的注釋,服務(wù)器不會將其發(fā)送到客戶端第六頁,共50頁。JSP表達式示例<body><h1>JSP表達式

</h1><b>PI的值:</b><%=Math.PI%><br/><b>100,99中最大的值:</b><%=Math.max(100,99)%><br/><b>100,99中最小的值:</b><%=Math.min(100,99)%><br/><b>3+2-5的值:</b><%=3+2-5%><br/><b>(3+2)==5的值:</b><%=(3+2)==5%><br/><b>(3+2)!=5的值:</b><%=(3+2)!=5%><br/></body>

表達式演示:java表達式使用JSP表達式進行JSP編程第七頁,共50頁。JSP頁面元素示例<%@pagecontentType="text/html;charset=GBK"language="java"import="java.util.Calendar"%><%!StringgetHello(Stringname){return"Hi,"+name+"!";}%><%Calendarnow=Calendar.getInstance();%>JSP聲明Java程序片JSP指令第八頁,共50頁。JSP頁面元素JSP頁面的元素靜態(tài)內(nèi)容指令表達式Java程序JSP頁面<%Java代碼%><%=Java表達式%>HTML靜態(tài)文本以“<%@”開始,以“%>”結(jié)束。比如:<%@includefile=""%>聲明動作<%!函數(shù)或方法%>以“<jsp:動作名”開始,以“</jsp:動作名>”結(jié)束比如:<jsp:includepage=""/>注釋<!--這是注釋,但客戶端可以查看到--><%--這也是注釋,但客戶端不能查看到--%>第九頁,共50頁。項目實現(xiàn)新建工程新建WebApplicationhtml文件:head.html、welcome.html、special.htm、connectus.htm運用“include”指令,組合頁面:<%@includefile=“要插入的文件名“%>JSP文件:welcome.jsp、special.jsp、connectus.jsp調(diào)試、運行第十頁,共50頁。亂碼問題Web.xml文件第十一頁,共50頁。項目功能改進——請大家完成練習(xí)思路:減少JSP文件個數(shù);一個主頁,通過判斷用戶點擊的超鏈接確定頁面內(nèi)容超級鏈接的附帶參數(shù);實現(xiàn)方法:鏈接方式:修改head.htm文件:<ahref="index.jsp?choice=1">專業(yè)首頁</a>獲取鏈接地址:修改index.jsp文件:request.getParameter(choice);Include指令加載文件第十二頁,共50頁。繼續(xù)完善交流功能實現(xiàn)頁面跳轉(zhuǎn)方式?第十三頁,共50頁。通過response對象實現(xiàn)網(wǎng)頁跳轉(zhuǎn)sendRedirect(Stringurl):用來重新定向新網(wǎng)頁原理:服務(wù)器將目標資源完整的URL通過response發(fā)送給客戶端瀏覽器,瀏覽器收到后更新至地址欄,并將目標資源的URL提交給服務(wù)器response.sendRedirect(”index.jsp”);重定向使目標資源的URL從服務(wù)器傳到客戶端瀏覽器,再從客戶端通過HTTP請求傳回服務(wù)器,具有一定的網(wǎng)絡(luò)延時客戶端瀏覽器地址欄顯示的是跳轉(zhuǎn)至的新地址url相對路徑,相對當前文件所在路徑第十四頁,共50頁。通過request對象實現(xiàn)網(wǎng)頁間跳轉(zhuǎn)request轉(zhuǎn)發(fā)器(RequestDispatcher)的作用是獲得目標網(wǎng)頁的轉(zhuǎn)發(fā)器,通過轉(zhuǎn)發(fā)器將當前Servlet程序的request和response對象轉(zhuǎn)發(fā)給目標網(wǎng)頁,并跳轉(zhuǎn)至目標網(wǎng)頁上運行程序,這樣,目標網(wǎng)頁就可通過request對象讀取上一網(wǎng)頁傳遞給它的request屬性。獲得目標網(wǎng)頁轉(zhuǎn)發(fā)器的方法為:RequestDispatchertarget=request.getRequestDispatcher(Stringpath)實現(xiàn)網(wǎng)頁的跳轉(zhuǎn)的方法為:target.forward(request,response);第十五頁,共50頁。示例request.getRequestDispatcher("index.jsp“).forward(request,response);第十六頁,共50頁。forward動作標簽格式:<jsp:forwardpage=“要轉(zhuǎn)向的頁面”></jsp:forward>作用:

從該指令處停止當前頁面的繼續(xù)執(zhí)行,而轉(zhuǎn)向其他JSP頁面。<jsp:forwardpage=“index.jsp"></jsp:forward>第十七頁,共50頁。參數(shù)傳遞?可以通過在地址后跟參數(shù)傳遞:request.getRequestDispatcher("index.jsp?choice=1").forward(request,response);response.sendRedirect(”index.jsp?choice=1”);第十八頁,共50頁。param動作標簽格式:

<jsp:paramname=“名字”value=“指定給param的值”>作用:該標簽可以與jsp:forward或者jsp:include標簽一起使用,可以將param標簽中的值傳遞到include指定或者forward指令要加載/轉(zhuǎn)向的頁面中。<jsp:forwardpage=“index.jsp"><jsp:paramname=“choice“value=“1"/></jsp:forward>

第十九頁,共50頁。轉(zhuǎn)發(fā)跳轉(zhuǎn)和重定向跳轉(zhuǎn)區(qū)別requestDispatcher.forward():轉(zhuǎn)發(fā)跳轉(zhuǎn)直接在服務(wù)器端切換程序,目標資源的URL不會出現(xiàn)在瀏覽器地址欄中基本沒有網(wǎng)絡(luò)時延當前網(wǎng)頁的request、response對象轉(zhuǎn)發(fā)給目標資源Response.sendRedirect():重定向跳轉(zhuǎn)通過客戶端重新發(fā)送URL,目標資源的URL出現(xiàn)在地址欄中有一定的網(wǎng)絡(luò)時延當前網(wǎng)頁的request、response對象生命期結(jié)束jsp動作:<jsp:frowardpage=“URL“>

優(yōu)點:通過標簽實現(xiàn),便于理解,便于非程序員調(diào)用

<jsp:forwardpage=“URL"> <jsp:paramname="paramName"value="paramValue"/></jsp:forward>第二十頁,共50頁。例:模擬登錄功能實現(xiàn)三個頁面:login.jsp,handle.jsp,main.jspLogin.jsp:顯示用戶名、密碼輸入界面Handle.jsp獲取用戶名密碼,若用戶名為abc,密碼為123,則跳轉(zhuǎn)至main.jsp,否則跳轉(zhuǎn)至login.jsp第二十一頁,共50頁。作業(yè)P38頁:交流頁面實現(xiàn)復(fù)習(xí)課本1-38頁內(nèi)容預(yù)習(xí)39頁案例預(yù)習(xí)內(nèi)置對象第二十二頁,共50頁。頁面間的跳轉(zhuǎn)用戶在一個網(wǎng)頁進行瀏覽或者操作后一般還需要到其他網(wǎng)頁繼續(xù)瀏覽或者操作,這就涉及網(wǎng)頁間跳轉(zhuǎn)的問題實現(xiàn)方式:點擊表單的提交按鈕點擊超鏈接通過JSP程序代碼實現(xiàn)跳轉(zhuǎn)通過JSP動作標簽實現(xiàn)跳轉(zhuǎn)要求:能夠向新頁面中傳遞必要的信息第二十三頁,共50頁。通過超級鏈接實現(xiàn)網(wǎng)頁的跳轉(zhuǎn)格式:<ahref=“鏈接目標”?參數(shù)名=值&參數(shù)名=值>鏈接文本</a>例:第二十四頁,共50頁。解決通過URI傳送數(shù)據(jù)中中文亂碼問題 需要通過URI傳遞數(shù)據(jù)的情況:通過超鏈接傳遞中文參數(shù)通過get方法提交表單中的中文數(shù)據(jù)

修改tomcat下Server.xml文件:<Connectorport="8080"protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"URIEncoding="utf-8"/>第二十五頁,共50頁。通過response對象實現(xiàn)網(wǎng)頁跳轉(zhuǎn)客戶訪問服務(wù)器使用的是HTTP請求包,系統(tǒng)將HTTP請求包封裝為request對象。服務(wù)器響應(yīng)客戶時,即向客戶發(fā)送信息時,使用的是HTTP響應(yīng)包

,系統(tǒng)將HTTP響應(yīng)包封裝為response對象在JSP頁面中,可以使用response對象的方法動態(tài)控制響應(yīng)方式,向客戶端發(fā)送數(shù)據(jù)。第二十六頁,共50頁。response對象的常用方法setHeader(Stringname,Stringvalue):第一個形參為報頭名,第二個形參是報頭值。HTTP報頭中有一個名為“Refresh”的響應(yīng)報頭,它的作用是使IE瀏覽器在若干秒后自動刷新當前網(wǎng)頁或跳轉(zhuǎn)至指定的URL資源。語法為:response.setHeader(“Refresh”,“秒數(shù);url=目標地址”); 方法的第一個形參是響應(yīng)報頭名“Refresh”,第二個形參由兩部分組成: 第一部分定義秒數(shù),即若干秒后自動刷新; 第二部分為目標資源的URL,如果沒URL項則代表當前頁。第二十七頁,共50頁。例:在網(wǎng)頁中實時顯示系統(tǒng)時間現(xiàn)在的時間是:<BR><% out.println(""+newDate());response.setHeader("Refresh","1");%>第二十八頁,共50頁。例:提示密碼錯誤,兩秒鐘后返回登錄頁密碼錯誤,兩秒鐘后將返回登陸頁重新登錄!<BR><% response.setHeader(“Refresh”,“2;url=”);%>第二十九頁,共50頁。通過response對象實現(xiàn)網(wǎng)頁跳轉(zhuǎn)sendRedirect(Stringurl):用來重新定向新網(wǎng)頁原理:服務(wù)器將目標資源完整的URL通過response發(fā)送給客戶端瀏覽器,瀏覽器收到后更新至地址欄,并將目標資源的URL提交給服務(wù)器重定向使目標資源的URL從服務(wù)器傳到客戶端瀏覽器,再從客戶端通過HTTP請求傳回服務(wù)器,具有一定的網(wǎng)絡(luò)延時客戶端瀏覽器地址欄顯示的是跳轉(zhuǎn)至的新地址url相對路徑,相對當前文件所在路徑第三十頁,共50頁。通過request對象實現(xiàn)網(wǎng)頁間跳轉(zhuǎn)request轉(zhuǎn)發(fā)器(RequestDispatcher)的作用是獲得目標網(wǎng)頁的轉(zhuǎn)發(fā)器,通過轉(zhuǎn)發(fā)器將當前Servlet程序的request和response對象轉(zhuǎn)發(fā)給目標網(wǎng)頁,并跳轉(zhuǎn)至目標網(wǎng)頁上運行程序,這樣,目標網(wǎng)頁就可通過request對象讀取上一網(wǎng)頁傳遞給它的request屬性。獲得目標網(wǎng)頁轉(zhuǎn)發(fā)器的方法為:RequestDispatchertarget=request.getRequestDispatcher(Stringpath)實現(xiàn)網(wǎng)頁的跳轉(zhuǎn)的方法為:target.forward(request,response);第三十一頁,共50頁。轉(zhuǎn)發(fā)跳轉(zhuǎn)和重定向跳轉(zhuǎn)區(qū)別requestDispatcher.forward():轉(zhuǎn)發(fā)跳轉(zhuǎn)直接在服務(wù)器端切換程序,目標資源的URL不會出現(xiàn)在瀏覽器地址欄中基本沒有網(wǎng)絡(luò)時延當前網(wǎng)頁的request、response對象轉(zhuǎn)發(fā)給目標資源Response.sendRedirect():重定向跳轉(zhuǎn)通過客戶端重新發(fā)送URL,目標資源的URL出現(xiàn)在地址欄中有一定的網(wǎng)絡(luò)時延當前網(wǎng)頁的request、response對象生命期結(jié)束jsp動作:<jsp:frowardpage=“URL“>

優(yōu)點:通過標簽實現(xiàn),便于理解,便于非程序員調(diào)用

<jsp:forwardpage=“URL"> <jsp:paramname="paramName"value="paramValue"/></jsp:forward>第三十二頁,共50頁。JSP動作實現(xiàn)頁面跳轉(zhuǎn)jsp動作:<jsp:frowardpage=“URL“>

優(yōu)點:通過標簽實現(xiàn),便于理解,便于非程序員調(diào)用

傳遞參數(shù):

<jsp:forwardpage=“URL"> <jsp:paramname="paramName"value="paramValue"/></jsp:forward>第三十三頁,共50頁。項目引入——網(wǎng)上調(diào)查新建工程頁面設(shè)計:index.htm、newsselect.jsp、newsok.jsp第三十四頁,共50頁。JSP內(nèi)置對象常用的JSP內(nèi)置對象常用內(nèi)置對象requestresponseoutapplicationsessionexceptionpagepageContextconfig第三十五頁,共50頁。功能實現(xiàn):——Form表單參數(shù)如下:ACTION:表單處理方式,指定數(shù)據(jù)傳送“目的地”

METHOD:數(shù)據(jù)傳輸方式,如post或get方法;

ENCTYPE:傳送表單數(shù)據(jù)的編碼方式Form標記分析:傳遞數(shù)據(jù)嗎?第三十六頁,共50頁。內(nèi)置對象JSP頁面隱式對象客戶端響應(yīng)請求響應(yīng)請求服務(wù)器第三十七頁,共50頁。request內(nèi)置對象方法:getParameter(Strings)作用:獲取客戶提交的信息;使用:reques.getParameter(Strings);分析:“s”是表單控件的名稱;實例練習(xí):獲取用戶提交數(shù)據(jù)的程序:request.jsp分析:如果輸入中文,出現(xiàn)什么情況JSP頁面request對象客戶端請求信息表示并存儲客戶端的請求請求服務(wù)器第三十八頁,共50頁。中文亂碼處理處理思想:首先,將獲取的字符串用ISO-8859-1進行編碼,并將編碼存放到一個字節(jié)數(shù)組中Stringstr=request.getParameter(“s”);Byteb[]=str.getBytes(“ISO-8859-1”);Str=newString(b,”utf-8”);簡寫為:Stringstr=newString(request.getParameter(“s”).getBytes(“ISO-8859-1”),”utf-8”);第三十九頁,共50頁。使用request對象的其他問題實例:文本框中輸入一個數(shù)字,計算其平方根代碼1:<%Stringdata2=request.getParameter("data");result=Math.sqrt(data2);%><%=data2%>的平方根是:<%=result%>代碼2:<%Stringdata2=request.getParameter("data");doubledata3,result;data3=Double.parseDouble(data2);//數(shù)據(jù)類型轉(zhuǎn)換

result=Math.sqrt(data3);%><%=data2%>的平方根是:<%=result%>代碼3:<%Stringdata2=request.getParameter("data");if(data2==null){data2="0";}//空對象處理

doubledata3,result;data3=Double.parseDouble(data2);//數(shù)據(jù)類型轉(zhuǎn)換

if(data3>=0){result=Math.sqrt(data3);%><%=data2%>的平方根是:<%=result%><%}else{%>請輸入一個整數(shù)<%}%>代碼4(最終版):<%Stringdata2=request.getParameter("data");if(data2==null){data2="0";}//空對象處理

doubledata3,result;try{data3=Double.parseDouble(data2);//數(shù)據(jù)類型轉(zhuǎn)換

if(data3>=0){result=Math.sqrt(data3);%><%=data2%>的平方根是:<%=result%><%}else{%>請輸入一個正數(shù)

<%}}catch(NumberFormatExceptione){%>請輸入數(shù)字字符<%}%>第四十頁,共50頁。預(yù)備知識——session內(nèi)置對象Cookie:是一條極為短小的信息,能夠被網(wǎng)站自動地放置在一臺電腦的硬盤中。通過Cookie,網(wǎng)站可以識別你是第一次訪問,或是又一次訪問它。會話:從一個客戶打開瀏覽器并連接到服務(wù)器開始,到客戶關(guān)閉瀏覽器離開服務(wù)器結(jié)束,稱為一個會話;Session用來保存客戶端狀態(tài)信息;客戶端的每次訪問都把上次的session記錄傳遞給WebServer;WebServer讀取客戶端提交的session來獲取客戶端的狀態(tài)信息;第四十一頁,共50頁。session常用方法publicvoidsetAttribute(Stringkey,Objectobj);

將Object指定的對象obj添加到session對象中,并為添加的對象指定一個索引關(guān)鍵字;publicObjectgetAttribute(Stringkey);獲取session對象中含有關(guān)鍵字是key的對象,由于任何對象都可以添加到session對象中,取回對象時,應(yīng)強制轉(zhuǎn)化為原來類型。session.getId();獲取session對象的編號類似方法:session.putValue("namesex",name+sex);Stringnamesex=(String)session.getValue("namesex");<%session.setAttribute(“name”,“admin”);%><%if(session.getAttribute(“name”)!=null){Stringname=(String)session.setAttribute(“name”);}%>第四十二頁,共50頁。application對象生命周期:服務(wù)器啟動——服務(wù)器關(guān)閉所有客戶的application對象都是同一個。例如:聊天室程序、計數(shù)器程序、留言板程序。所有客戶共享一個application對象常用方法:getAttribute(Stringname)setAttibute(Stringname,Objectvalue)<%application.setAttribute(“ChartRecord”,“hihi”);%><%if(application.getAttribute(“ChatRecord”)!=null){

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論