第一篇:JSP基礎總結范文
JSP基礎總結之一
JSP(Java Server Pages)是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標準。JSP技術有點類似ASP技術,它是在傳統的網頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標記(tag),從而形成JSP文件(*.jsp)。用JSP開發的Web應用是跨平臺的,既能在Linux下運行,也能在其他操作系統上運行。
總體而言,jsp就是html+java程序段。
1,Jsp語法
1.1,Jsp數據定義
聲明 <%!聲明 %> :<%!int i=0;%>
表達式 <%= 表達式 %>: <%= a*b*c %>(變量已經在頁面當中聲明)程序代碼段 <% 程序代碼片段 %> <% double r=5.0,s;
s=3.14*r*r;
out.print(s); %>
1.2,Jsp JSP指令
指令不是JSP代碼中邏輯的一部分。相反,JSP指令只是為容器提供指導和指示,JSP指令會被JSP引擎轉換為相應的Java代碼,但這些Java代碼并不直接產生任何可見輸出,而是告訴JSP引擎如何處理JSP頁面,或是如何生成Servlet類。JSP指令包括:page指令;taglib指令;include指令。
指令的形式一般為:<%@ 指令名 [...一個或多個屬性...]%>。指令類似于動作,也可以有一些屬性。@符號和指令名之間的空格以及最后一個屬性與結束%>之間的空格都是可選的。
處理一個JSP頁面:容器的角度。
容器完成的處理劃分為不同階段。
1.第一階段,JSP頁面實際上首先轉換為Java源代碼。這稱為翻譯階段,在這個階段,稱JSP頁面被翻譯為JAVA源代碼。java源代碼按純文本格式生成,而且是人可讀的。2.第二階段,Java源代碼編譯為可執行的字節碼。這稱為編譯階段。所得到的可執行字節碼是二進制格式,可以由任何JVM執行。
3.第三階段,執行已編譯的JSP二進制碼時,它會處理到來的請求。這個階段稱為請求階段。這個階段發生的所有事情都稱為在請求時出現。
一旦被翻譯和編譯,就能重用
JSP二進制碼來處理每一個到來的請求。這就不必為每個請求都完成翻譯和編譯階段。不過,如果JSP有修改,容器必須發現這個修改,并重新翻譯和重新編譯頁面。
page指令
page 指令是最復雜的JSP指令,它的主要功能為設定整個JSP 網頁的屬性和相關功能。具體是設置哪種功能,是由其屬性指定的?;菊Z法
page 指令是以<%@ page 起始,以%>結束:
<%@ page attribute1=“value1” attribute2= “value2” attribute3=…%>
然而像所有JSP 標簽元素一樣,page 指令也支持另一種以XML為基礎的語法,如下所示:
通常page指令位于JSP頁面的頂端,在同一個JSP頁面中可以有多個page指令,但不能重復指定同樣的page指令。page 指令中包含的屬性:
1)import 語法:<%@page import=“package.class|package.*,...”%> 說明:類似于在java中導入包一樣,如果JSP頁面中用到一些類,需要使用page指令的import屬性導入使用的類。import設置當前JSP頁面中要用到的Java類,這些java類可能是JDK的類,也可能是自定義的類。在JSP頁面中也默認加入“java.lang.*;”、“java.servlet.*”、“java.servlet.jsp.*;”、“java.servlet.http.*;”。
2)session 語法:<%page session = “true|false” %> 說明:定義當前頁面是否參與HTTP會話。當設置為true時,可以獲得隱含的名session的對象,為false時,則不可以獲得該對象。默認為true。
3)contentType 語法:<%page contentType = “mimeType[;charset=characterSet]”%> 說明:使用contentType屬性可以設置JSP頁面應答的MIME類型,默認值為“text/html”。另外可以定義JSP頁面的字符編碼方式,默認值為ISO-8859-1,即英文文本。如果在JSP中使用中文,則可以定義字符編碼方式為GBK。4)isThreadSafe(慎用)
語法:<%page isThreadSafe = “true|false” %> 說明:定義當前頁面是否支持線程安全。若為true,則該頁面可能同時收到JSP引擎發送的多個請求;反之,JSP引擎會對收到的請求進行排除,當前頁面在同一時刻只處理一個請求。默認為true。
5)info 語法:<%page info = “some text” %> 說明:info屬性允許開發人員包含有關頁面的文本信息,可以通過Servlet.getServletInfo()方法得到該字符串。
6)language 語法:<%page language = “java” %> 說明:language屬性定義JSP使用的腳本語言,JSP容器允許使用其他語言進行JSP開發,但這些語言需要滿足JSP規范中定義的規則。默認為java。
7)extends 語法:<%page extends = “jsp base class” %> 說明:extends屬性用來指定生成的JSP Servlet的基類。默認為擴展JspBase類。
8)buffer 語法:<%page buffer = “8k” %> 說明:buffer屬性用來指定響應的緩沖模型。默認值為8k。若設置為none,則表示該JSP頁面不使用緩沖,所有響應輸出孝將被PrintWriter直接寫到ServletResponse中。
9)autoFlush 語法:<%page autoFlush = “true|flase” %> 說明:
10)errorPage 語法:<%page errorPage = “true|flase” %> 說明:errorPage用來設定當JSP頁面出現異常時,所要轉身的頁面。如果沒有設定,則JSP容器會用默認的當前頁面來顯示出錯信息。例如,<%@page errorPage=“/error/error_page.jsp”%>
11)isErrorPage 語法:<%page isErrorPage = “true|flase” %> 說明:isErrorPage指定當前頁面是否是錯誤處理頁面。默認值為false。若設定為true,則JSP容器會在當前頁面中生成一個exception對象。
Include指令
在頁面轉換期間將文件包含到jsp頁面,include指令用于在jsp頁面中靜態包含一個文件,該文件可以是jsp頁面,html頁面,文本文件或一段Java代碼等。
1)include語法:
<%@ include file=“url”%> file的屬性值被解釋為相對于當前jsp文件的URL.2)在被包含的文件中不要使用和主頁重復的HTML標簽。這樣會影響原jsp文件中同樣的標簽導致錯誤。
因為原文件和被包含文件可以互相訪問彼此定義的變量和方法,所以要避免變量和方法在命名上的問題。
注意事項
包含文件中要避免使用、、
、第二篇:JSP課程總結
JSP課程總結
1006010101 計算機1班
董楠楠
在學習這門課之前,JSP對于我來說是一個全新的領域,包括其基礎的HTML靜態網頁的相關知識,數據庫方面,服務器的作用都不了解。一開始難免的失意和緊張,覺得這門課對我來說是一種挑戰。經過一個學期的課程學習以及近期的基于JSP的網盤課程設計,我對這門課終于有了初步的了解,雖然掌握得很膚淺,但內心很興奮,很欣喜,新的語言入門很難,但我相信在日后的學習中,我會有一定的突破。
JSP的全稱是Java Server Pages,它是一種動態網頁技術。我們需要配置的壞境有JDK,Tomcat,還要用到Myeclips這一基礎的編程工具。在學習JSP之前,由于沒有網頁編程的基礎,便學習了HTML這種文本標記語言,自己試著去做簡單的靜態網站。后來學做JSP動態網站時,就涉及到了多方面的知識,JSP內部對象及內部對象所涉及的方法,JSP與數據庫連接,如何去引用數據庫。這門課更是鞏固了JAVA這一基礎編程語言,要求對JAVA掌握的要透徹,每門語言要學扎實,深入理解,都要花費很大的功夫,不是容易的事情。
通過以上知識的學習,對開發簡單的動態網頁有了些許的眉目,又進一步加深了對JSP的了解。比如我們此次的課設,設計一個網絡硬盤,用戶可以再上面上傳、下載資料,存儲基本信息。
JSP在工作時,首先啟動服務器,并且保證應用在服務器上,客戶通過瀏覽器發送請求,服務器接收到請求之后,查找有沒有這個文件對應的JAVA文件的對象。如果沒有這個文件,則需要創建(先把JSP文件轉換成JAVA文件,編譯成.class文件,加載類并創建對象),然后調用對象的相應方法,方法完成對用戶的響應,通常輸出的是HTML代碼,客戶端接收到HTML代碼,瀏覽器解析這個代碼生成畫面。
在網站設計中,處處離不開Servlet,它充當一個控制器,負責封裝數據,處理業務,頁面分發??蛻舳税l送請求至服務器,服務器啟動并調用Servlet,Servlet根據客戶端請求生成響應內容并將其傳給服務器,服務器再將響應返回客戶端。網盤開發的整個過程中,都充分體現了MVC原理,MVC是一種架構模式,該設計模式把系統分為以下三個模塊:模型層(Model):包括業務層BIZ、數據持久層DAO、實體層JavaBean ;視圖層(View):對應的組件是Jsp或Html文件,此次課設對應的是Jsp文件控制器(Controller):對應的組件是Servlet。MVC模式通過引入控制器的方法將視圖層與模型層解耦、分離。Model層開發又涉及到數據庫連接池,連接池相當于一個容器,該容器里裝有多個連接,每當有用戶請求時容器就會自動拿出一個連接對象,當用戶用完之后,容器又會將使用完畢的連接對象收回。
Jsp與servlet有一定的區別,Servlet可以看作是HTML的Java代碼,而JSP可看作是包含 Java代碼的HTML。共同點:JSP和Servlet實際上是一回事。JSP頁面最終要轉換成Servlet,并進行編譯,在請求期間執行的實際上是編譯后的Servlet。因此,JSP頁面不過是編寫Servlet的另一種方式。各自應用的范圍:Servlet比較適合于做處理任務,如做業務邏輯;JSP適合于表示任務,如網頁制作,生成動態網頁。
Jsp開發中,很重要的一點便是實現Tomcat與數據庫的鏈接,通過高級JDBC實現,基于model層的開發。在網盤的設計中也得到了充分的體現,我們寫了一個數據庫連接類以實現Tomcat與數據庫的連接。在使用HTTP協議將客戶端的請求傳送到服務器端時,通過以下方法。1)get是從服務器上獲取數據,post是向服務器傳送數據。2)在客戶端,Get方式在通過URL提交數據,數據在URL中可以看到,POST方式,數據放置在HTML HEADER內提交。3)對于get方式,服務器端用request.getQueryString()可以獲取GET請求參數的變量值,對于post方式,服務器端用request.getParameter獲取提交的數據。
以上便是我學習JSP這門課的總結以及心得。
第三篇:JSP語法總結
JSP語法(1)——HTML注釋
HTML 注釋 在客戶端顯示一個注釋.JSP 語法 例子 1 在客戶端的HTML源代碼中產生和上面一樣的數據: 例子 2 在客戶端的HTML源代碼中顯示為: 描述 這種注釋和HTML中很像,也就是它可以在“查看源代碼”中看到。唯一有些不同的就是,你可以在這個注釋中用表達式(例子2所示)。這個表達示是不定的,由頁面不同而不同,你能夠使用各種表達式,只要是合法的就行。
JSP語法(2)——隱藏注釋
隱藏注釋 寫在JSP程序中,但不是發給客戶。JSP 語法 <%--comment--%> 例子: <%@ page language=“java” %>
A Test of Comments
<%--This comment will not be visible in the page source--%>第四篇:jsp選擇題總結
一.選擇題(每題2分,共40分)
1、page指令用于定義JSP文件中的全局屬性,下列關于該指令用法的描述不正確的是:()。A、<%@ page %>作用于整個JSP頁面
B、可以在一個頁面中使用多個<%@ page %>指令
C、為增強程序的可讀性,建議將<%@ page %>指令放在JSP文件的開頭,但不是必須的 D、<%@ page %>指令中的屬性只能出現一次
2、以下對象中作用域最大的是()。
A、request
B、session
C、application
D、page
3、編寫JavaBean就是編寫一個Java類,所以只要會寫類就能編寫一個Bean,一個完整JavaBean在類的命名上需要遵守以下規則,其中錯誤的是()。A、類中方法的訪問屬性必須是public的。
B、對于boolean類型的成員變量,允許使用is代替get。
C、類中如果有構造方法,那么這個構造方法也是public的,并且是無參數的。D、在JavaBean中定義屬性時,應該定義成public。
4、以下四個選項中不屬于Servlet生命周期的是()。
A、init()
B、service()
C、start()
D、destroy()
5、對于預定義<%!預定義%>的說法錯誤的是:()。
A、一次可聲明多個變量和方法,只要以“;”結尾就行
B、一個聲明僅在一個頁面中有效
C、聲明的變量將作為局部變量
11.哪個是JSP指令標記?C A.<% ?? %> B.<%!?? %> C.<%@ ?? %> D.<%= ?? %> 10.下邊哪個不是JSP的內置對象?C A.session B.request C.cookie D.out 12.當在JSP文件中要使用到Vector對象時,應在JSP文件中加入以下哪個語句?C A. /> B. /> C.<%@ page import=”java.util.*” %> D.<%@ page include=”java.util.*” %> 13.關于JavaBean的說法,哪個是正確的?D A.JavaBean的具體類可以不是public的。B.JavaBean可以只提供一個帶參數的構造器。C.jsp:userBean可以向HTML標記一樣不關閉。D.JavaBean可以保存狀態。 15.要在session對象中保存屬性,可以使用以下哪個語句?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都是用來做頁面跳轉的,描述錯誤的是?D forward之后可以使用原來的request對象,而且效率較高。 sendRedirect之后不可以使用原來的request對象,而且效率較低。forward地址欄不變化,只能在Web應用程序內的頁面間跳轉。forward地址欄變化,可以跳轉到任何頁面和機器。關于get和post兩種請求,下列說法正確的是?A get請求是默認的。 get請求處理的數據量大小不受到限制。//get處理小數據量 post請求地址欄里是能看到數據的。post請求可以由doGet方法處理。 JSP分頁代碼中,哪個步驟次序是正確的?A 先取總記錄數,得到總頁數,再取所有的記錄,最后顯示本頁的數據。先取所有的記錄,得到總頁數,再取總記錄數,最后顯示本頁的數據。先取總頁數,得到總記錄數,再取所有的記錄,最后顯示本頁的數據。先取本頁的數據,得到總頁數,再取總記錄數,最后顯示所有的記錄。下邊哪個不是MVC中的組成部分?B JavaBean FrameWork JSP Servlet 哪個不是Servlet接口的方法?D doGet方法 doPost方法 init方法 forward方法 Oracle數據庫的JDBC驅動程序類名及完整包路徑為:D jdbc.driver.oracle.OracleDriver jdbc.oracle.driver.OracleDriver driver.oracle.jdbc.OracleDriver oracle.jdbc.driver.OracleDriver 如果需要刪除session中的某個屬性key,可以調用下面的___C_方法。remove(“key”)removeAttribute(“key”)invalidate()logout()下述有關JSP和Servlet關系的論述正確的有:(兩個正確答案)AB JSP能夠實現功能均可由Servlet實現。B.Servlet能夠實現功能均可由JSP實現。C.Servlet更適合做表現層。 D.JSP適合做控制層。 25.下面哪一個是正確使用JavaBean的方式?A A. 26.銷毀一個session對象應該調用下面哪一個方法?A A.session.invalidate();B.session.expunge();C.session.destroy();D.session.end(); 4、下述選項中不屬于JDBC基本功能的是:(D) A.與數據庫建立連接 B.提交SQL語句 C.處理查詢結果 D.數據庫維護管理 5、在JSP中使用 A.name B.property C.value D.以上皆不會出現 7、在JSP中調用JavaBean時不會用到的標記是:(A) A. B. C. D. 8、關于JavaBean正確的說法是:(A) A、Java文件與Bean所定義的類名可以不同,但一定要注意區分字母的大小寫 B、在JSP文件中引用Bean,其實就是用 9、Servlet程序的入口點是:(A) A、init()B、main()C、service()D、doGet() 10、不能在不同用戶之間共享數據的方法是(A) A、通過cookie B、利用文件系統 C、利用數據庫 D、通過ServletContext對象 A5.編寫Servlet 的doPost方法時,需要拋出異常為()。(只選一項)A.ServletException,IOException B.ServletException,RemoteException C.HttpServletException,IOException D.HttpServletException,RemoteException ABC6.有關會話跟蹤技術描述正確的是()。(選擇三項) A.Cookie是Web服務器發送給客戶端的一小段信息,客戶端請求時,可以讀取該信息發送到服務器端 B.關閉瀏覽器意味著會話ID丟失,但所有與原會話關聯的會話數據仍保留在服務器上,直至會話過期 C.在禁用Cookie時可以使用URL重寫技術跟蹤會話 D.隱藏表單域將字段添加到HTML表單并在客戶端瀏覽器中顯示 A7.以下()可用于檢索session屬性userid的值。(只選一項)A.session.getAttribute(“userid”);B.session.setAttribute(“userid”);C.request.getParameter(“userid”);D.request.getAttribute(“userid”); CD8.有關Servlet的生命周期說法正確的有()。(選擇兩項)A.Servlet的生命周期由Servlet實例控制 B.init()方法在創建完Servlet實例后對其進行初始化,傳遞的參數為實現ServletContext接口的對象 C.service()方法響應客戶端發出的請求 D.destroy()方法釋放Servlet實例 9.在J2EE中,以下對RequestDispatcher描述正確的是(C)。(選擇一項)A.Jsp中有個隱含的對象diapatcher,它的類型是RequestDispatcher B.ServletConfig有一個方法:getRequestDispatcher可以返回RequestDipatcher對象 C.RequestDipatcher 有一個方法:forward可以把請求繼續傳遞給別的Servlet或者JSP界面 D.JSP中有個隱含的默認對象request,它的類型是RequestDipatcher 10.在WEB應用程序的目錄結構中,在WEB-INF文件夾外的文件為(A)。(只選一項)A..jsp文件 B..class文件 C..jar文件 D.web.xml文件 11.給定一個Servlet程序的代碼片段,如下:(B)Public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException { request.getSession().getAttribute(“A”);//第二行 } 假定第二行返回的對象引用不是null,那么這個對象存儲在(B)范圍中。(選擇一項)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的值取出來。(選擇一項)A.String str = request.getAttribute(“jb”);B.String sir =(String)request.getAttribute(“jb”); C.Object str = request.getAttribute(“jb“); D.取不出來 13.給定一個Servlet的代碼片段如下:(A)Public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{ ______ out.println(“hi kitty!”);out.close();} 運行次Servlet時輸出如下: hi kitty!則應在此Servlet下劃線處填充如下代碼。(選項一項) A.PrintWriter out = response.getWriter();B.PrintWriter out = request.getWriter();C.OutputStream out = response.getOutputStream();D.OutputStream out = request.getWriter(); 14.在Servlet中,下列語句可以正確獲取PrintWriter對象的是(C)。(只選一項)A.PrintWriter out= request.getWriter();B.PrintWriter out = request.getPrintWriter();C.PrintWriter out= response.getWriter();D.PrintWriter out = response.getPrintWriter(); 15關于session的使用,下列說話正確的是(AC)。(選擇兩項)A.不同的用戶窗口具有不同的session B.不同的用戶窗口具有相同的session C.session可能超時間 D.Session永遠不可能超時 16在Servlet過濾器的生命周期方法中,每當傳遞請求或響應時,web容器會調用(C)方法。(選擇一項)A.init B.service C.doFilter D.destroy 17.在 J2EE中,便用 Resultset對象的 next()方法移動光標時,如果超過界限,會拋出異常,該異常通常是(C)。(選擇一項)A.InterruptedExceptlon B.AlreadyBoundExceptlon C.SQLException D.NetExcePtlon 18.在J2EE中,對于Httpservlet類的描述,錯誤的是(A)。(選擇一項) A.我們自己編寫的Servlet繼承了Httpservlet類,一定需覆蓋doPost或者doGet B.HttpServlet類擴展了GenericServlet類,實現了GenericServlet類的抽象方法 C.HttpServlet類中處理客戶請求和響應時所使用的兩個接口是:HttpServletRequest和HttpServletResponse. D.我們自己編寫的servlet繼承了Httpservlet類,一般只需要覆蓋doPost方法,不必覆蓋servive()方法,因為一個service()方法會調用doPost或者doGet方法 19.Servlet中,HttpServletResponse的(C)方法用來把一個Http請求重定向到另外的URL。(選擇一項)A.sendURL()B.redirectURL()C.sendRedirect()D.redirectResponse() 20在J2EE中,給定某Servlet的代碼如下,編譯運行該文件,以下陳述正確的是(B)。(選擇一項) 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 編譯該文件時會提示缺少doGet()或者dopost()方法,編譯不能夠成功通過 B 編譯后,把Servlet1.class放在正確位置,運行該Servlet,在瀏覽器中會看到輸出文字:hello!C 編譯后,把Servlet1.class放在正確位置,運行該Servlet,在瀏覽器中看不到任何輸出的文字 D 編譯后,把Servlet1.class放在正確位置,運行該Servlet,在瀏覽器中會看到運行期錯誤信息J2EE中,HttpServletRequest類的(C)方法用返回與當前請求相關聯的會話,如果沒有,則返回null。(選擇一項)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)三個不同的作用域存儲數據。 A 請求、會話和上下文 B 響應、會話和上下文 C 請求、響應和會話 D 請求、響應和上下文 25在J2EE中,重定向到另一個頁面,以下(C)語句是正確的。 A request.sendRedirect(“http : // www.tmdps.cn”);B request.sendRedirect();C response.sendRedirect(“Http : // www.tmdps.cn”);D response.sendRedirect(); 26在J2EE中,假如HttpSession的getLasAccessTime()方法返回值為x,getCreationTime()方法返回值為y,則為x-y(C)。 A 兩個連續請求之間間隔的最長時間 B 最近的兩個連續請求之間的時間間隔 C 最后使用session發送請求的時間和session創建時間的間隔 D 最后使用session發送請求的時間 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是一個(A)協議 A.無狀態 B.有狀態 C.狀態良好的 D.局域網 39、Servlet程序的入口點是:(A)A、init() B、main() C、service() D、doGet() 30在J2EE 中,Servlet從實例化到消亡是一個生命周期。下列描述正確的是(BD)。(選擇兩項) a) 在典型的Servlet生命周期模型中,每次Web請求就會創建一個Servlet實例,請求結束Servlet就消亡了 b) init()方法是包容器調用的Servlet實例的第一個方法 c) 在包容器把請求傳送給Servlet之后,和在調用Servlet實例的doGet或者doPost方法之前,包容器不會調用Servlet實例的其他方法 d) 在Servlet 實例消亡之前,包容器調用Servlet實例的destroy()方法 31下列那個類是抽象類(B)A ServletConfig B HttpServlet C Cookie D HttpServletRequest Http協議的狀態碼(D)表示文件沒有創建 A 200 B 400 C 500 D 404 33在HTTP協議中,用于發送大量數據的方法是(B)A get B post C put D options 34.在JSP中,只有一行代碼:<%=A+B%>,運行將輸出(D)。(選擇一項) a)A+B b)AB c)113 d)沒有任何輸出,因為表達式是錯誤的 35.在JSP中,以下的page指令設置了使用的腳本語言是Java,且導入了java.rmi.*和java.util.*包.正確的是(B).(選擇一項) 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)。(選擇一項)a)l+4 b)5 c)14 d)不會輸出,因為表達式是錯誤的 37.在JSP中,page指令的(b)屬性用來引入需要的包或類。(選擇一項)a)extends b)import c)languge d)contentType 38.在JSP中,若要在JSP正確使用標簽: 39.在JSP中,test.jsp文件如下,試圖運行時,將發生(D)。 <% String str = null;%> str is <%= str%> a)轉譯期有誤 b)編譯Servlet源碼時發生錯誤 c)執行編譯后的Servlet時發生錯誤 d)運行后,瀏覽器上顯示:str is null 40.給定以下JSP代碼片段,有2個客戶依次瀏覽該JSP;且每個客戶只瀏覽一次,第2個客戶會看到瀏覽器顯示(B)。(請選擇一項)<%int x = 1;%> <%!int x = 10;%> X =< %= ++x%> a)X = 1 b)X = 2 c)X = 10 d)X = 11 41.在JSP中,給定以下JSP代碼片段,運行結果是(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期末復習總結 作者:張煥 HTML基礎知識:HTML常用標簽和元素 charset=”gbk” //設置字符集第五篇:jsp知識點總結
定義預先排版的文本 自動換行與首行縮進
定義一個段落
插入單個換行
//插入橫線

1、JSP容器
一個完整的JSP頁面通常需要具有幾個要素:JSP標記。JSP標記包括Action、Custom標記等。JSP標簽既可以是單一標簽,也可以是成對標簽。
2、JSP注釋
在JSP頁面中,注釋的內容不會被執行,有以下幾種注釋方式: <%---注釋內容
--%> <%// 注釋內容
%> <%/* 注釋內容
*/%>
3、JSP腳本元素
(1)聲明(可以是變量或方法)P116 <%!聲明部分;//成員變量 %>(2)小腳本(Scriptlet)<% Java代碼//局部變量 %>(3)表達式
JSP表達式用來把Java數據直接插入到輸出。其語法如下:
<%= Java Expression %>
計算Java表達式得到的結果被轉換成字符串,然后插入到頁面。計算在運行時進行(頁面被請求時),因此可以訪問和請求有關的全部信息。
需注意:不能使用分號“;”作為表達式的結束符。(4)注意:
每一個jsp文件會被轉化成為一個servlet,也就是一個java類 在<% %>里面定義的變量在_jspservice方法中,是局部變量 在<%!%>里面寫的東西是jsp生成的這個類的成員變量
4、JSP指令元素
只是告訴jsp引擎對jsp頁面如何編譯,不包含業務邏輯,也不修改輸出流。編譯指令能夠改變把JSP程序轉換成Servlet程序代碼的結果。也就是說,使用不同的編譯指令會使JSP程序有不同的執行方式。
(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%>指令用作對整個JSP頁面的初始設置 page指令可以在一個頁面中出現多次
page指令中的屬性一般只出現一次,import除外 ****兩數相除程序**** 文件名稱: 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(“被除數不是整數!”);
}
try{
checkor=Integer.parseInt(request.getParameter(“value2”));
}
catch(NumberFormatException nfex){
throw new NumberFormatException(“除數不是整數!”);
}
result=checki/checkor;
out.println(“
正確運算結果:
”);
out.println(checki+“/”+checkor+“=”+result);
%>