第一篇:JSP語(yǔ)法總結(jié)
JSP語(yǔ)法(1)——HTML注釋
HTML 注釋 在客戶端顯示一個(gè)注釋.JSP 語(yǔ)法 例子 1 在客戶端的HTML源代碼中產(chǎn)生和上面一樣的數(shù)據(jù): 例子 2 在客戶端的HTML源代碼中顯示為: 描述 這種注釋和HTML中很像,也就是它可以在“查看源代碼”中看到。唯一有些不同的就是,你可以在這個(gè)注釋中用表達(dá)式(例子2所示)。這個(gè)表達(dá)示是不定的,由頁(yè)面不同而不同,你能夠使用各種表達(dá)式,只要是合法的就行。
JSP語(yǔ)法(2)——隱藏注釋
隱藏注釋 寫在JSP程序中,但不是發(fā)給客戶。JSP 語(yǔ)法 <%--comment--%> 例子: <%@ page language=“java” %>
A Test of Comments
<%--This comment will not be visible in the page source--%>第二篇:JSP課程總結(jié)
JSP課程總結(jié)
1006010101 計(jì)算機(jī)1班
董楠楠
在學(xué)習(xí)這門課之前,JSP對(duì)于我來(lái)說(shuō)是一個(gè)全新的領(lǐng)域,包括其基礎(chǔ)的HTML靜態(tài)網(wǎng)頁(yè)的相關(guān)知識(shí),數(shù)據(jù)庫(kù)方面,服務(wù)器的作用都不了解。一開(kāi)始難免的失意和緊張,覺(jué)得這門課對(duì)我來(lái)說(shuō)是一種挑戰(zhàn)。經(jīng)過(guò)一個(gè)學(xué)期的課程學(xué)習(xí)以及近期的基于JSP的網(wǎng)盤課程設(shè)計(jì),我對(duì)這門課終于有了初步的了解,雖然掌握得很膚淺,但內(nèi)心很興奮,很欣喜,新的語(yǔ)言入門很難,但我相信在日后的學(xué)習(xí)中,我會(huì)有一定的突破。
JSP的全稱是Java Server Pages,它是一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)。我們需要配置的壞境有JDK,Tomcat,還要用到Myeclips這一基礎(chǔ)的編程工具。在學(xué)習(xí)JSP之前,由于沒(méi)有網(wǎng)頁(yè)編程的基礎(chǔ),便學(xué)習(xí)了HTML這種文本標(biāo)記語(yǔ)言,自己試著去做簡(jiǎn)單的靜態(tài)網(wǎng)站。后來(lái)學(xué)做JSP動(dòng)態(tài)網(wǎng)站時(shí),就涉及到了多方面的知識(shí),JSP內(nèi)部對(duì)象及內(nèi)部對(duì)象所涉及的方法,JSP與數(shù)據(jù)庫(kù)連接,如何去引用數(shù)據(jù)庫(kù)。這門課更是鞏固了JAVA這一基礎(chǔ)編程語(yǔ)言,要求對(duì)JAVA掌握的要透徹,每門語(yǔ)言要學(xué)扎實(shí),深入理解,都要花費(fèi)很大的功夫,不是容易的事情。
通過(guò)以上知識(shí)的學(xué)習(xí),對(duì)開(kāi)發(fā)簡(jiǎn)單的動(dòng)態(tài)網(wǎng)頁(yè)有了些許的眉目,又進(jìn)一步加深了對(duì)JSP的了解。比如我們此次的課設(shè),設(shè)計(jì)一個(gè)網(wǎng)絡(luò)硬盤,用戶可以再上面上傳、下載資料,存儲(chǔ)基本信息。
JSP在工作時(shí),首先啟動(dòng)服務(wù)器,并且保證應(yīng)用在服務(wù)器上,客戶通過(guò)瀏覽器發(fā)送請(qǐng)求,服務(wù)器接收到請(qǐng)求之后,查找有沒(méi)有這個(gè)文件對(duì)應(yīng)的JAVA文件的對(duì)象。如果沒(méi)有這個(gè)文件,則需要?jiǎng)?chuàng)建(先把JSP文件轉(zhuǎn)換成JAVA文件,編譯成.class文件,加載類并創(chuàng)建對(duì)象),然后調(diào)用對(duì)象的相應(yīng)方法,方法完成對(duì)用戶的響應(yīng),通常輸出的是HTML代碼,客戶端接收到HTML代碼,瀏覽器解析這個(gè)代碼生成畫面。
在網(wǎng)站設(shè)計(jì)中,處處離不開(kāi)Servlet,它充當(dāng)一個(gè)控制器,負(fù)責(zé)封裝數(shù)據(jù),處理業(yè)務(wù),頁(yè)面分發(fā)??蛻舳税l(fā)送請(qǐng)求至服務(wù)器,服務(wù)器啟動(dòng)并調(diào)用Servlet,Servlet根據(jù)客戶端請(qǐng)求生成響應(yīng)內(nèi)容并將其傳給服務(wù)器,服務(wù)器再將響應(yīng)返回客戶端。網(wǎng)盤開(kāi)發(fā)的整個(gè)過(guò)程中,都充分體現(xiàn)了MVC原理,MVC是一種架構(gòu)模式,該設(shè)計(jì)模式把系統(tǒng)分為以下三個(gè)模塊:模型層(Model):包括業(yè)務(wù)層BIZ、數(shù)據(jù)持久層DAO、實(shí)體層JavaBean ;視圖層(View):對(duì)應(yīng)的組件是Jsp或Html文件,此次課設(shè)對(duì)應(yīng)的是Jsp文件控制器(Controller):對(duì)應(yīng)的組件是Servlet。MVC模式通過(guò)引入控制器的方法將視圖層與模型層解耦、分離。Model層開(kāi)發(fā)又涉及到數(shù)據(jù)庫(kù)連接池,連接池相當(dāng)于一個(gè)容器,該容器里裝有多個(gè)連接,每當(dāng)有用戶請(qǐng)求時(shí)容器就會(huì)自動(dòng)拿出一個(gè)連接對(duì)象,當(dāng)用戶用完之后,容器又會(huì)將使用完畢的連接對(duì)象收回。
Jsp與servlet有一定的區(qū)別,Servlet可以看作是HTML的Java代碼,而JSP可看作是包含 Java代碼的HTML。共同點(diǎn):JSP和Servlet實(shí)際上是一回事。JSP頁(yè)面最終要轉(zhuǎn)換成Servlet,并進(jìn)行編譯,在請(qǐng)求期間執(zhí)行的實(shí)際上是編譯后的Servlet。因此,JSP頁(yè)面不過(guò)是編寫Servlet的另一種方式。各自應(yīng)用的范圍:Servlet比較適合于做處理任務(wù),如做業(yè)務(wù)邏輯;JSP適合于表示任務(wù),如網(wǎng)頁(yè)制作,生成動(dòng)態(tài)網(wǎng)頁(yè)。
Jsp開(kāi)發(fā)中,很重要的一點(diǎn)便是實(shí)現(xiàn)Tomcat與數(shù)據(jù)庫(kù)的鏈接,通過(guò)高級(jí)JDBC實(shí)現(xiàn),基于model層的開(kāi)發(fā)。在網(wǎng)盤的設(shè)計(jì)中也得到了充分的體現(xiàn),我們寫了一個(gè)數(shù)據(jù)庫(kù)連接類以實(shí)現(xiàn)Tomcat與數(shù)據(jù)庫(kù)的連接。在使用HTTP協(xié)議將客戶端的請(qǐng)求傳送到服務(wù)器端時(shí),通過(guò)以下方法。1)get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)。2)在客戶端,Get方式在通過(guò)URL提交數(shù)據(jù),數(shù)據(jù)在URL中可以看到,POST方式,數(shù)據(jù)放置在HTML HEADER內(nèi)提交。3)對(duì)于get方式,服務(wù)器端用request.getQueryString()可以獲取GET請(qǐng)求參數(shù)的變量值,對(duì)于post方式,服務(wù)器端用request.getParameter獲取提交的數(shù)據(jù)。
以上便是我學(xué)習(xí)JSP這門課的總結(jié)以及心得。
第三篇:jsp選擇題總結(jié)
一.選擇題(每題2分,共40分)
1、page指令用于定義JSP文件中的全局屬性,下列關(guān)于該指令用法的描述不正確的是:()。A、<%@ page %>作用于整個(gè)JSP頁(yè)面
B、可以在一個(gè)頁(yè)面中使用多個(gè)<%@ page %>指令
C、為增強(qiáng)程序的可讀性,建議將<%@ page %>指令放在JSP文件的開(kāi)頭,但不是必須的 D、<%@ page %>指令中的屬性只能出現(xiàn)一次
2、以下對(duì)象中作用域最大的是()。
A、request
B、session
C、application
D、page
3、編寫JavaBean就是編寫一個(gè)Java類,所以只要會(huì)寫類就能編寫一個(gè)Bean,一個(gè)完整JavaBean在類的命名上需要遵守以下規(guī)則,其中錯(cuò)誤的是()。A、類中方法的訪問(wèn)屬性必須是public的。
B、對(duì)于boolean類型的成員變量,允許使用is代替get。
C、類中如果有構(gòu)造方法,那么這個(gè)構(gòu)造方法也是public的,并且是無(wú)參數(shù)的。D、在JavaBean中定義屬性時(shí),應(yīng)該定義成public。
4、以下四個(gè)選項(xiàng)中不屬于Servlet生命周期的是()。
A、init()
B、service()
C、start()
D、destroy()
5、對(duì)于預(yù)定義<%!預(yù)定義%>的說(shuō)法錯(cuò)誤的是:()。
A、一次可聲明多個(gè)變量和方法,只要以“;”結(jié)尾就行
B、一個(gè)聲明僅在一個(gè)頁(yè)面中有效
C、聲明的變量將作為局部變量
11.哪個(gè)是JSP指令標(biāo)記?C A.<% ?? %> B.<%!?? %> C.<%@ ?? %> D.<%= ?? %> 10.下邊哪個(gè)不是JSP的內(nèi)置對(duì)象?C A.session B.request C.cookie D.out 12.當(dāng)在JSP文件中要使用到Vector對(duì)象時(shí),應(yīng)在JSP文件中加入以下哪個(gè)語(yǔ)句?C A. /> B. /> C.<%@ page import=”java.util.*” %> D.<%@ page include=”java.util.*” %> 13.關(guān)于JavaBean的說(shuō)法,哪個(gè)是正確的?D A.JavaBean的具體類可以不是public的。B.JavaBean可以只提供一個(gè)帶參數(shù)的構(gòu)造器。C.jsp:userBean可以向HTML標(biāo)記一樣不關(guān)閉。D.JavaBean可以保存狀態(tài)。 15.要在session對(duì)象中保存屬性,可以使用以下哪個(gè)語(yǔ)句?B A.session.getAttribute(“key”,”value”);B.session.setAttribute(“key”,”value”);C.D.16.A.B.C.D.17.A.B.C.D.19.A.B.C.D.20.A.B.C.D.21.A.B.C.D.22.A.B.C.D.23.A.B.C.D.24.A.session.setAtrribute(“key”);session.getAttribute(“key”);jsp:forward和sendRedirect都是用來(lái)做頁(yè)面跳轉(zhuǎn)的,描述錯(cuò)誤的是?D forward之后可以使用原來(lái)的request對(duì)象,而且效率較高。 sendRedirect之后不可以使用原來(lái)的request對(duì)象,而且效率較低。forward地址欄不變化,只能在Web應(yīng)用程序內(nèi)的頁(yè)面間跳轉(zhuǎn)。forward地址欄變化,可以跳轉(zhuǎn)到任何頁(yè)面和機(jī)器。關(guān)于get和post兩種請(qǐng)求,下列說(shuō)法正確的是?A get請(qǐng)求是默認(rèn)的。 get請(qǐng)求處理的數(shù)據(jù)量大小不受到限制。//get處理小數(shù)據(jù)量 post請(qǐng)求地址欄里是能看到數(shù)據(jù)的。post請(qǐng)求可以由doGet方法處理。 JSP分頁(yè)代碼中,哪個(gè)步驟次序是正確的?A 先取總記錄數(shù),得到總頁(yè)數(shù),再取所有的記錄,最后顯示本頁(yè)的數(shù)據(jù)。先取所有的記錄,得到總頁(yè)數(shù),再取總記錄數(shù),最后顯示本頁(yè)的數(shù)據(jù)。先取總頁(yè)數(shù),得到總記錄數(shù),再取所有的記錄,最后顯示本頁(yè)的數(shù)據(jù)。先取本頁(yè)的數(shù)據(jù),得到總頁(yè)數(shù),再取總記錄數(shù),最后顯示所有的記錄。下邊哪個(gè)不是MVC中的組成部分?B JavaBean FrameWork JSP Servlet 哪個(gè)不是Servlet接口的方法?D doGet方法 doPost方法 init方法 forward方法 Oracle數(shù)據(jù)庫(kù)的JDBC驅(qū)動(dòng)程序類名及完整包路徑為:D jdbc.driver.oracle.OracleDriver jdbc.oracle.driver.OracleDriver driver.oracle.jdbc.OracleDriver oracle.jdbc.driver.OracleDriver 如果需要?jiǎng)h除session中的某個(gè)屬性key,可以調(diào)用下面的___C_方法。remove(“key”)removeAttribute(“key”)invalidate()logout()下述有關(guān)JSP和Servlet關(guān)系的論述正確的有:(兩個(gè)正確答案)AB JSP能夠?qū)崿F(xiàn)功能均可由Servlet實(shí)現(xiàn)。B.Servlet能夠?qū)崿F(xiàn)功能均可由JSP實(shí)現(xiàn)。C.Servlet更適合做表現(xiàn)層。 D.JSP適合做控制層。 25.下面哪一個(gè)是正確使用JavaBean的方式?A A. 26.銷毀一個(gè)session對(duì)象應(yīng)該調(diào)用下面哪一個(gè)方法?A A.session.invalidate();B.session.expunge();C.session.destroy();D.session.end(); 4、下述選項(xiàng)中不屬于JDBC基本功能的是:(D) A.與數(shù)據(jù)庫(kù)建立連接 B.提交SQL語(yǔ)句 C.處理查詢結(jié)果 D.數(shù)據(jù)庫(kù)維護(hù)管理 5、在JSP中使用 A.name B.property C.value D.以上皆不會(huì)出現(xiàn) 7、在JSP中調(diào)用JavaBean時(shí)不會(huì)用到的標(biāo)記是:(A) A. B. C. D. 8、關(guān)于JavaBean正確的說(shuō)法是:(A) A、Java文件與Bean所定義的類名可以不同,但一定要注意區(qū)分字母的大小寫 B、在JSP文件中引用Bean,其實(shí)就是用 9、Servlet程序的入口點(diǎn)是:(A) A、init()B、main()C、service()D、doGet() 10、不能在不同用戶之間共享數(shù)據(jù)的方法是(A) A、通過(guò)cookie B、利用文件系統(tǒng) C、利用數(shù)據(jù)庫(kù) D、通過(guò)ServletContext對(duì)象 A5.編寫Servlet 的doPost方法時(shí),需要拋出異常為()。(只選一項(xiàng))A.ServletException,IOException B.ServletException,RemoteException C.HttpServletException,IOException D.HttpServletException,RemoteException ABC6.有關(guān)會(huì)話跟蹤技術(shù)描述正確的是()。(選擇三項(xiàng)) A.Cookie是Web服務(wù)器發(fā)送給客戶端的一小段信息,客戶端請(qǐng)求時(shí),可以讀取該信息發(fā)送到服務(wù)器端 B.關(guān)閉瀏覽器意味著會(huì)話ID丟失,但所有與原會(huì)話關(guān)聯(lián)的會(huì)話數(shù)據(jù)仍保留在服務(wù)器上,直至?xí)掃^(guò)期 C.在禁用Cookie時(shí)可以使用URL重寫技術(shù)跟蹤會(huì)話 D.隱藏表單域?qū)⒆侄翁砑拥紿TML表單并在客戶端瀏覽器中顯示 A7.以下()可用于檢索session屬性u(píng)serid的值。(只選一項(xiàng))A.session.getAttribute(“userid”);B.session.setAttribute(“userid”);C.request.getParameter(“userid”);D.request.getAttribute(“userid”); CD8.有關(guān)Servlet的生命周期說(shuō)法正確的有()。(選擇兩項(xiàng))A.Servlet的生命周期由Servlet實(shí)例控制 B.init()方法在創(chuàng)建完Servlet實(shí)例后對(duì)其進(jìn)行初始化,傳遞的參數(shù)為實(shí)現(xiàn)ServletContext接口的對(duì)象 C.service()方法響應(yīng)客戶端發(fā)出的請(qǐng)求 D.destroy()方法釋放Servlet實(shí)例 9.在J2EE中,以下對(duì)RequestDispatcher描述正確的是(C)。(選擇一項(xiàng))A.Jsp中有個(gè)隱含的對(duì)象diapatcher,它的類型是RequestDispatcher B.ServletConfig有一個(gè)方法:getRequestDispatcher可以返回RequestDipatcher對(duì)象 C.RequestDipatcher 有一個(gè)方法:forward可以把請(qǐng)求繼續(xù)傳遞給別的Servlet或者JSP界面 D.JSP中有個(gè)隱含的默認(rèn)對(duì)象request,它的類型是RequestDipatcher 10.在WEB應(yīng)用程序的目錄結(jié)構(gòu)中,在WEB-INF文件夾外的文件為(A)。(只選一項(xiàng))A..jsp文件 B..class文件 C..jar文件 D.web.xml文件 11.給定一個(gè)Servlet程序的代碼片段,如下:(B)Public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException { request.getSession().getAttribute(“A”);//第二行 } 假定第二行返回的對(duì)象引用不是null,那么這個(gè)對(duì)象存儲(chǔ)在(B)范圍中。(選擇一項(xiàng))A.page B.session C.request D.application 12.在J2EE中在servletl中的doGet和doPost方法中只有如下代碼:(D) request.setAttribute(”jb”,”aPtech”); response.sendRedirect(”http://localhost:8080/servlet/Servlet2”); 那么在Servlet2 中使用()可以把屬性jb的值取出來(lái)。(選擇一項(xiàng))A.String str = request.getAttribute(“jb”);B.String sir =(String)request.getAttribute(“jb”); C.Object str = request.getAttribute(“jb“); D.取不出來(lái) 13.給定一個(gè)Servlet的代碼片段如下:(A)Public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{ ______ out.println(“hi kitty!”);out.close();} 運(yùn)行次Servlet時(shí)輸出如下: hi kitty!則應(yīng)在此Servlet下劃線處填充如下代碼。(選項(xiàng)一項(xiàng)) A.PrintWriter out = response.getWriter();B.PrintWriter out = request.getWriter();C.OutputStream out = response.getOutputStream();D.OutputStream out = request.getWriter(); 14.在Servlet中,下列語(yǔ)句可以正確獲取PrintWriter對(duì)象的是(C)。(只選一項(xiàng))A.PrintWriter out= request.getWriter();B.PrintWriter out = request.getPrintWriter();C.PrintWriter out= response.getWriter();D.PrintWriter out = response.getPrintWriter(); 15關(guān)于session的使用,下列說(shuō)話正確的是(AC)。(選擇兩項(xiàng))A.不同的用戶窗口具有不同的session B.不同的用戶窗口具有相同的session C.session可能超時(shí)間 D.Session永遠(yuǎn)不可能超時(shí) 16在Servlet過(guò)濾器的生命周期方法中,每當(dāng)傳遞請(qǐng)求或響應(yīng)時(shí),web容器會(huì)調(diào)用(C)方法。(選擇一項(xiàng))A.init B.service C.doFilter D.destroy 17.在 J2EE中,便用 Resultset對(duì)象的 next()方法移動(dòng)光標(biāo)時(shí),如果超過(guò)界限,會(huì)拋出異常,該異常通常是(C)。(選擇一項(xiàng))A.InterruptedExceptlon B.AlreadyBoundExceptlon C.SQLException D.NetExcePtlon 18.在J2EE中,對(duì)于Httpservlet類的描述,錯(cuò)誤的是(A)。(選擇一項(xiàng)) A.我們自己編寫的Servlet繼承了Httpservlet類,一定需覆蓋doPost或者doGet B.HttpServlet類擴(kuò)展了GenericServlet類,實(shí)現(xiàn)了GenericServlet類的抽象方法 C.HttpServlet類中處理客戶請(qǐng)求和響應(yīng)時(shí)所使用的兩個(gè)接口是:HttpServletRequest和HttpServletResponse. D.我們自己編寫的servlet繼承了Httpservlet類,一般只需要覆蓋doPost方法,不必覆蓋servive()方法,因?yàn)橐粋€(gè)service()方法會(huì)調(diào)用doPost或者doGet方法 19.Servlet中,HttpServletResponse的(C)方法用來(lái)把一個(gè)Http請(qǐng)求重定向到另外的URL。(選擇一項(xiàng))A.sendURL()B.redirectURL()C.sendRedirect()D.redirectResponse() 20在J2EE中,給定某Servlet的代碼如下,編譯運(yùn)行該文件,以下陳述正確的是(B)。(選擇一項(xiàng)) Public class Servlet1 extends HttpServlet{ Public void init()throws ServletException{ } Public void service(HttpServletRequest request,HttpServletResponse response) Throws ServletException,IOException{ PrintWriter out = response.getWriter(); Out.println(“hello!”);} } A 編譯該文件時(shí)會(huì)提示缺少doGet()或者dopost()方法,編譯不能夠成功通過(guò) B 編譯后,把Servlet1.class放在正確位置,運(yùn)行該Servlet,在瀏覽器中會(huì)看到輸出文字:hello!C 編譯后,把Servlet1.class放在正確位置,運(yùn)行該Servlet,在瀏覽器中看不到任何輸出的文字 D 編譯后,把Servlet1.class放在正確位置,運(yùn)行該Servlet,在瀏覽器中會(huì)看到運(yùn)行期錯(cuò)誤信息J2EE中,HttpServletRequest類的(C)方法用返回與當(dāng)前請(qǐng)求相關(guān)聯(lián)的會(huì)話,如果沒(méi)有,則返回null。(選擇一項(xiàng))A getSession()B getSession(true)C getSession(false)D getSession(null)在J2EE中,在web.xml中,有如下代碼: public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException ,IOException { System.out.println(“get”); } public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException ,IOException { System.out.println(“post”); } A get B post C get post D post get Servlet 可以在以下(A)三個(gè)不同的作用域存儲(chǔ)數(shù)據(jù)。 A 請(qǐng)求、會(huì)話和上下文 B 響應(yīng)、會(huì)話和上下文 C 請(qǐng)求、響應(yīng)和會(huì)話 D 請(qǐng)求、響應(yīng)和上下文 25在J2EE中,重定向到另一個(gè)頁(yè)面,以下(C)語(yǔ)句是正確的。 A request.sendRedirect(“http : // 004km.cn”);B request.sendRedirect();C response.sendRedirect(“Http : // 004km.cn”);D response.sendRedirect(); 26在J2EE中,假如HttpSession的getLasAccessTime()方法返回值為x,getCreationTime()方法返回值為y,則為x-y(C)。 A 兩個(gè)連續(xù)請(qǐng)求之間間隔的最長(zhǎng)時(shí)間 B 最近的兩個(gè)連續(xù)請(qǐng)求之間的時(shí)間間隔 C 最后使用session發(fā)送請(qǐng)求的時(shí)間和session創(chuàng)建時(shí)間的間隔 D 最后使用session發(fā)送請(qǐng)求的時(shí)間 27J2EE中,Servlet API 為使用Cookie,提供了(A)類。 A Javax.servlet.http.Cookie B Javax.servlet.http.HttpCookie C Javax.servlet.Cookie D Javax.servlet.http.HttpCookie http是一個(gè)(A)協(xié)議 A.無(wú)狀態(tài) B.有狀態(tài) C.狀態(tài)良好的 D.局域網(wǎng) 39、Servlet程序的入口點(diǎn)是:(A)A、init() B、main() C、service() D、doGet() 30在J2EE 中,Servlet從實(shí)例化到消亡是一個(gè)生命周期。下列描述正確的是(BD)。(選擇兩項(xiàng)) a) 在典型的Servlet生命周期模型中,每次Web請(qǐng)求就會(huì)創(chuàng)建一個(gè)Servlet實(shí)例,請(qǐng)求結(jié)束Servlet就消亡了 b) init()方法是包容器調(diào)用的Servlet實(shí)例的第一個(gè)方法 c) 在包容器把請(qǐng)求傳送給Servlet之后,和在調(diào)用Servlet實(shí)例的doGet或者doPost方法之前,包容器不會(huì)調(diào)用Servlet實(shí)例的其他方法 d) 在Servlet 實(shí)例消亡之前,包容器調(diào)用Servlet實(shí)例的destroy()方法 31下列那個(gè)類是抽象類(B)A ServletConfig B HttpServlet C Cookie D HttpServletRequest Http協(xié)議的狀態(tài)碼(D)表示文件沒(méi)有創(chuàng)建 A 200 B 400 C 500 D 404 33在HTTP協(xié)議中,用于發(fā)送大量數(shù)據(jù)的方法是(B)A get B post C put D options 34.在JSP中,只有一行代碼:<%=A+B%>,運(yùn)行將輸出(D)。(選擇一項(xiàng)) a)A+B b)AB c)113 d)沒(méi)有任何輸出,因?yàn)楸磉_(dá)式是錯(cuò)誤的 35.在JSP中,以下的page指令設(shè)置了使用的腳本語(yǔ)言是Java,且導(dǎo)入了java.rmi.*和java.util.*包.正確的是(B).(選擇一項(xiàng)) a)<%@ page Language=“Java”,import=”java.rmi.*;java.uitl.* ”%”> b)<%@ page language=“Java” Import=”java.rmi.*,java.uitl.* ”%”> c)<%@ page language=“Java”;import=”java.rmi.*;java.uitl.* ”%”> d)<%@ page language=“Java” import=”java.rmi.* ,java.uitl.* ”%> 36.在JSP中,<%=”1+4” %>將輸出(A)。(選擇一項(xiàng))a)l+4 b)5 c)14 d)不會(huì)輸出,因?yàn)楸磉_(dá)式是錯(cuò)誤的 37.在JSP中,page指令的(b)屬性用來(lái)引入需要的包或類。(選擇一項(xiàng))a)extends b)import c)languge d)contentType 38.在JSP中,若要在JSP正確使用標(biāo)簽: 39.在JSP中,test.jsp文件如下,試圖運(yùn)行時(shí),將發(fā)生(D)。 <% String str = null;%> str is <%= str%> a)轉(zhuǎn)譯期有誤 b)編譯Servlet源碼時(shí)發(fā)生錯(cuò)誤 c)執(zhí)行編譯后的Servlet時(shí)發(fā)生錯(cuò)誤 d)運(yùn)行后,瀏覽器上顯示:str is null 40.給定以下JSP代碼片段,有2個(gè)客戶依次瀏覽該JSP;且每個(gè)客戶只瀏覽一次,第2個(gè)客戶會(huì)看到瀏覽器顯示(B)。(請(qǐng)選擇一項(xiàng))<%int x = 1;%> <%!int x = 10;%> X =< %= ++x%> a)X = 1 b)X = 2 c)X = 10 d)X = 11 41.在JSP中,給定以下JSP代碼片段,運(yùn)行結(jié)果是(A)。 <% int x=5;%>局部 <%!int x=7;%>成員變量 <%! Int getX(){ return x;} %> <% out.print(“X1=”+x);%> <% out.print(“X2=”+getX()); %> a)X1=5 X2=7 b)X1=5 X2=5 c)X1=7 X2=7 d)X1=7 X2=5 42.給定JSP文件代碼如下: <%!static int I=0;int j=0;%> for(;j++<2;){ out.print(I++);out.print(“ ”);} %> JSP期末復(fù)習(xí)總結(jié) 作者:張煥 HTML基礎(chǔ)知識(shí):HTML常用標(biāo)簽和元素 charset=”gbk” //設(shè)置字符集第四篇:jsp知識(shí)點(diǎn)總結(jié)
定義預(yù)先排版的文本 自動(dòng)換行與首行縮進(jìn)
定義一個(gè)段落
插入單個(gè)換行
//插入橫線

1、JSP容器
一個(gè)完整的JSP頁(yè)面通常需要具有幾個(gè)要素:JSP標(biāo)記。JSP標(biāo)記包括Action、Custom標(biāo)記等。JSP標(biāo)簽既可以是單一標(biāo)簽,也可以是成對(duì)標(biāo)簽。
2、JSP注釋
在JSP頁(yè)面中,注釋的內(nèi)容不會(huì)被執(zhí)行,有以下幾種注釋方式: <%---注釋內(nèi)容
--%> <%// 注釋內(nèi)容
%> <%/* 注釋內(nèi)容
*/%>
3、JSP腳本元素
(1)聲明(可以是變量或方法)P116 <%!聲明部分;//成員變量 %>(2)小腳本(Scriptlet)<% Java代碼//局部變量 %>(3)表達(dá)式
JSP表達(dá)式用來(lái)把Java數(shù)據(jù)直接插入到輸出。其語(yǔ)法如下:
<%= Java Expression %>
計(jì)算Java表達(dá)式得到的結(jié)果被轉(zhuǎn)換成字符串,然后插入到頁(yè)面。計(jì)算在運(yùn)行時(shí)進(jìn)行(頁(yè)面被請(qǐng)求時(shí)),因此可以訪問(wèn)和請(qǐng)求有關(guān)的全部信息。
需注意:不能使用分號(hào)“;”作為表達(dá)式的結(jié)束符。(4)注意:
每一個(gè)jsp文件會(huì)被轉(zhuǎn)化成為一個(gè)servlet,也就是一個(gè)java類 在<% %>里面定義的變量在_jspservice方法中,是局部變量 在<%!%>里面寫的東西是jsp生成的這個(gè)類的成員變量
4、JSP指令元素
只是告訴jsp引擎對(duì)jsp頁(yè)面如何編譯,不包含業(yè)務(wù)邏輯,也不修改輸出流。編譯指令能夠改變把JSP程序轉(zhuǎn)換成Servlet程序代碼的結(jié)果。也就是說(shuō),使用不同的編譯指令會(huì)使JSP程序有不同的執(zhí)行方式。
(1)page指令 <%@ page [language=“java”] [extends=”package.class”] [import=”{package.class|package.*}”] [session=“true”] [buffer=“none|8kb|sizekb”] [autoFlush=“true|false”] [inThreadSafe=“true”] [info=“text”] [errorPage=“relativeURL”] [contentType=“mimeType”] [isErrorPage=“true”] %>
<%@page%>指令用作對(duì)整個(gè)JSP頁(yè)面的初始設(shè)置 page指令可以在一個(gè)頁(yè)面中出現(xiàn)多次
page指令中的屬性一般只出現(xiàn)一次,import除外 ****兩數(shù)相除程序**** 文件名稱: compute.htm
文件名稱:check.jsp <%@ page language=“java” contentType=“text/html;charset=GBK” errorPage=“error.jsp” %><%
int checki=0;
int checkor=0;
int result=0;
try{
checki=Integer.parseInt(request.getParameter(“value1”));
}
catch(NumberFormatException nfex){
throw new NumberFormatException(“被除數(shù)不是整數(shù)!”);
}
try{
checkor=Integer.parseInt(request.getParameter(“value2”));
}
catch(NumberFormatException nfex){
throw new NumberFormatException(“除數(shù)不是整數(shù)!”);
}
result=checki/checkor;
out.println(“
正確運(yùn)算結(jié)果:
”);
out.println(checki+“/”+checkor+“=”+result);
%>
第五篇:JSP基礎(chǔ)總結(jié)范文
JSP基礎(chǔ)總結(jié)之一
JSP(Java Server Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁(yè)HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。用JSP開(kāi)發(fā)的Web應(yīng)用是跨平臺(tái)的,既能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。
總體而言,jsp就是html+java程序段。
1,Jsp語(yǔ)法
1.1,Jsp數(shù)據(jù)定義
聲明 <%!聲明 %> :<%!int i=0;%>
表達(dá)式 <%= 表達(dá)式 %>: <%= a*b*c %>(變量已經(jīng)在頁(yè)面當(dāng)中聲明)程序代碼段 <% 程序代碼片段 %> <% double r=5.0,s;
s=3.14*r*r;
out.print(s); %>
1.2,Jsp JSP指令
指令不是JSP代碼中邏輯的一部分。相反,JSP指令只是為容器提供指導(dǎo)和指示,JSP指令會(huì)被JSP引擎轉(zhuǎn)換為相應(yīng)的Java代碼,但這些Java代碼并不直接產(chǎn)生任何可見(jiàn)輸出,而是告訴JSP引擎如何處理JSP頁(yè)面,或是如何生成Servlet類。JSP指令包括:page指令;taglib指令;include指令。
指令的形式一般為:<%@ 指令名 [...一個(gè)或多個(gè)屬性...]%>。指令類似于動(dòng)作,也可以有一些屬性。@符號(hào)和指令名之間的空格以及最后一個(gè)屬性與結(jié)束%>之間的空格都是可選的。
處理一個(gè)JSP頁(yè)面:容器的角度。
容器完成的處理劃分為不同階段。
1.第一階段,JSP頁(yè)面實(shí)際上首先轉(zhuǎn)換為Java源代碼。這稱為翻譯階段,在這個(gè)階段,稱JSP頁(yè)面被翻譯為JAVA源代碼。java源代碼按純文本格式生成,而且是人可讀的。2.第二階段,Java源代碼編譯為可執(zhí)行的字節(jié)碼。這稱為編譯階段。所得到的可執(zhí)行字節(jié)碼是二進(jìn)制格式,可以由任何JVM執(zhí)行。
3.第三階段,執(zhí)行已編譯的JSP二進(jìn)制碼時(shí),它會(huì)處理到來(lái)的請(qǐng)求。這個(gè)階段稱為請(qǐng)求階段。這個(gè)階段發(fā)生的所有事情都稱為在請(qǐng)求時(shí)出現(xiàn)。
一旦被翻譯和編譯,就能重用
JSP二進(jìn)制碼來(lái)處理每一個(gè)到來(lái)的請(qǐng)求。這就不必為每個(gè)請(qǐng)求都完成翻譯和編譯階段。不過(guò),如果JSP有修改,容器必須發(fā)現(xiàn)這個(gè)修改,并重新翻譯和重新編譯頁(yè)面。
page指令
page 指令是最復(fù)雜的JSP指令,它的主要功能為設(shè)定整個(gè)JSP 網(wǎng)頁(yè)的屬性和相關(guān)功能。具體是設(shè)置哪種功能,是由其屬性指定的?;菊Z(yǔ)法
page 指令是以<%@ page 起始,以%>結(jié)束:
<%@ page attribute1=“value1” attribute2= “value2” attribute3=…%>
然而像所有JSP 標(biāo)簽元素一樣,page 指令也支持另一種以XML為基礎(chǔ)的語(yǔ)法,如下所示:
通常page指令位于JSP頁(yè)面的頂端,在同一個(gè)JSP頁(yè)面中可以有多個(gè)page指令,但不能重復(fù)指定同樣的page指令。page 指令中包含的屬性:
1)import 語(yǔ)法:<%@page import=“package.class|package.*,...”%> 說(shuō)明:類似于在java中導(dǎo)入包一樣,如果JSP頁(yè)面中用到一些類,需要使用page指令的import屬性導(dǎo)入使用的類。import設(shè)置當(dāng)前JSP頁(yè)面中要用到的Java類,這些java類可能是JDK的類,也可能是自定義的類。在JSP頁(yè)面中也默認(rèn)加入“java.lang.*;”、“java.servlet.*”、“java.servlet.jsp.*;”、“java.servlet.http.*;”。
2)session 語(yǔ)法:<%page session = “true|false” %> 說(shuō)明:定義當(dāng)前頁(yè)面是否參與HTTP會(huì)話。當(dāng)設(shè)置為true時(shí),可以獲得隱含的名session的對(duì)象,為false時(shí),則不可以獲得該對(duì)象。默認(rèn)為true。
3)contentType 語(yǔ)法:<%page contentType = “mimeType[;charset=characterSet]”%> 說(shuō)明:使用contentType屬性可以設(shè)置JSP頁(yè)面應(yīng)答的MIME類型,默認(rèn)值為“text/html”。另外可以定義JSP頁(yè)面的字符編碼方式,默認(rèn)值為ISO-8859-1,即英文文本。如果在JSP中使用中文,則可以定義字符編碼方式為GBK。4)isThreadSafe(慎用)
語(yǔ)法:<%page isThreadSafe = “true|false” %> 說(shuō)明:定義當(dāng)前頁(yè)面是否支持線程安全。若為true,則該頁(yè)面可能同時(shí)收到JSP引擎發(fā)送的多個(gè)請(qǐng)求;反之,JSP引擎會(huì)對(duì)收到的請(qǐng)求進(jìn)行排除,當(dāng)前頁(yè)面在同一時(shí)刻只處理一個(gè)請(qǐng)求。默認(rèn)為true。
5)info 語(yǔ)法:<%page info = “some text” %> 說(shuō)明:info屬性允許開(kāi)發(fā)人員包含有關(guān)頁(yè)面的文本信息,可以通過(guò)Servlet.getServletInfo()方法得到該字符串。
6)language 語(yǔ)法:<%page language = “java” %> 說(shuō)明:language屬性定義JSP使用的腳本語(yǔ)言,JSP容器允許使用其他語(yǔ)言進(jìn)行JSP開(kāi)發(fā),但這些語(yǔ)言需要滿足JSP規(guī)范中定義的規(guī)則。默認(rèn)為java。
7)extends 語(yǔ)法:<%page extends = “jsp base class” %> 說(shuō)明:extends屬性用來(lái)指定生成的JSP Servlet的基類。默認(rèn)為擴(kuò)展JspBase類。
8)buffer 語(yǔ)法:<%page buffer = “8k” %> 說(shuō)明:buffer屬性用來(lái)指定響應(yīng)的緩沖模型。默認(rèn)值為8k。若設(shè)置為none,則表示該JSP頁(yè)面不使用緩沖,所有響應(yīng)輸出孝將被PrintWriter直接寫到ServletResponse中。
9)autoFlush 語(yǔ)法:<%page autoFlush = “true|flase” %> 說(shuō)明:
10)errorPage 語(yǔ)法:<%page errorPage = “true|flase” %> 說(shuō)明:errorPage用來(lái)設(shè)定當(dāng)JSP頁(yè)面出現(xiàn)異常時(shí),所要轉(zhuǎn)身的頁(yè)面。如果沒(méi)有設(shè)定,則JSP容器會(huì)用默認(rèn)的當(dāng)前頁(yè)面來(lái)顯示出錯(cuò)信息。例如,<%@page errorPage=“/error/error_page.jsp”%>
11)isErrorPage 語(yǔ)法:<%page isErrorPage = “true|flase” %> 說(shuō)明:isErrorPage指定當(dāng)前頁(yè)面是否是錯(cuò)誤處理頁(yè)面。默認(rèn)值為false。若設(shè)定為true,則JSP容器會(huì)在當(dāng)前頁(yè)面中生成一個(gè)exception對(duì)象。
Include指令
在頁(yè)面轉(zhuǎn)換期間將文件包含到j(luò)sp頁(yè)面,include指令用于在jsp頁(yè)面中靜態(tài)包含一個(gè)文件,該文件可以是jsp頁(yè)面,html頁(yè)面,文本文件或一段Java代碼等。
1)include語(yǔ)法:
<%@ include file=“url”%> file的屬性值被解釋為相對(duì)于當(dāng)前jsp文件的URL.2)在被包含的文件中不要使用和主頁(yè)重復(fù)的HTML標(biāo)簽。這樣會(huì)影響原jsp文件中同樣的標(biāo)簽導(dǎo)致錯(cuò)誤。
因?yàn)樵募捅话募梢曰ハ嘣L問(wèn)彼此定義的變量和方法,所以要避免變量和方法在命名上的問(wèn)題。
注意事項(xiàng)
包含文件中要避免使用、、
、