2017年SUN認證考試常見知識點

Sun認證Java程序員考試旨在觀察您通過應用軟件分配進行復雜編程的能力,之後還要測試您完成編程所需的知識。下面是小編整理的關於SUN認證考試常見知識點,歡迎大家參考!

2017年SUN認證考試常見知識點

day1

JSP 定義:

1)Java Server Page, Java EE 組件,本質上是 Servlet。

2)運行在 Web Container.接收 Http Request,生成 Http Response(默認協議是 Http 請求和響應)

3)JSP 使得我們能夠分離頁面的靜態 HTML 和動態部分——我們需要的技術。

4)使頁面可以混和html代碼、Java代碼以及JSP標籤;允許訪問組件

Servlet的缺陷(JSP出現的原因):

1)寫靜態頁面必須部署後才能看到效果,很難控制頁面的外觀。

2)從技術角度來說Servlet是Java代碼和HTML靜態代碼的混合代碼。

3)從市場競爭角度來說,微軟推出了ASP產品。

JSP的改進:

1)JSP是標籤式的文本文件(區Servlet是Java文件)

2)JSP不需要編譯(其實是由服務器監測JSP文件的變化,再將其翻譯成 Servlet 代碼)

服務器對其進行編譯並在第一次請求時創建一個Servlet實例。所以,第一次訪問JSP頁面時會後延遲

3)JSP不用寫配置文件

4)JSP以靜態代碼爲主,Java代碼爲輔。Servlet反之。

5)是J2EE藍圖的一部分(Servlet、JSP以及EJB是J2EE的三大組件)

JSP從本質上來說內核還是Servlet,但與Servlet不是替代關係而是一種互補的關係。

JSP適合於寫顯示層的動態頁面,而Servlet則適合寫控制層的業務控制(頁面轉發)。

JSP往純標籤方向發展,Servlet往純代碼方向發展,他們以Servlet內核(請求響應式的工作方式)往兩個方向發展。

基本語法

一、JSP的聲明(statement)

用來定義在產生的類文件中的類的屬性和方法(成員變量)。可聲明類(即是內部類)。

由於servlet是工作在多線程環境下,所以儘量不要在service方法體外聲明成員變量。

//聲明時要加"!",屬於類成員,最先加載,可寫於任何位置;不加則是腳本的局部變量,必須調用前寫。

如: //變量的聲明

//變量的調用

//函數的聲明

//函數的調用

聲明規則:

1) JSP中聲明的變量和方法對應於Servlet中的實例方法和實例變量。這些將被同時請求該頁面的.所有用戶所共享;

2) 在使用變量或方法前須先定義(不是說聲明變量的位置在頁面中要處於使用變量的前面,而是指變量不聲明不能使用);

3) 聲明的變量或方法的作用域爲當前頁面或包含的頁面;

4) 語句間以分號分隔。

二、JSP代碼段(Scriptlet)

是一段可以在處理請求時間執行的Java代碼。可以產生輸出,也可以是一些流程控制語句。

在代碼段中定義的變量爲service方法中的局部變量。

1._jspService()中的局部代碼:

//在控制檯打印出,網頁上沒顯示

//打印在網頁上

問:能否在JSP腳本里定義方法?

答:不能! //腳本相當於方法,不能在方法裏定義方法

//可以聲明方法

//編譯出錯;腳本不能定義方法

2.比較:

//成員變量

//_jspService()方法中的局部變量

//同一文件裏,局部變量優先

3.腳本小程序規則:

1) 你使用的腳本語言決定了腳本小程序的規則;

2) 語句間以分號分隔;

3) 可以使用默認的對象、import進的類、declaration聲明的方法和對象以及useBean tag中聲明的對象。

三、JSP表達式(expression)

// "="號

在JSP請求處理階段計算他的值,表達式生成的代碼是Service方法中的一個代碼片斷。

JSP對於聲明的處理:1、計算表達式的值

2、將值轉換成String

3、用tln發送標籤;把數據輸出至頁面的當前位置

//tln("Hello,JSP world");

// tln(name);

//tln(new ());

表達式規則:

1) 你使用的腳本語言決定了腳本小程序的規則;

2) 執行的順序爲從左到右;

3) 分號不能用於表達式。

四、JSP指令(direction)

指令用於從JSP發送信息到容器上。用來設置全局變量,聲明類,要實現的方法和輸出內容等。

指令在JSP整個文件內有效。它爲翻譯階段提供了全局信息。

// "@"符號

指令包括:page、include、taglib

指令

import、session、errorPage、isThreadSafe

頁面的語言、內容類型、字符集、頁面編碼

language:java唯一值,表示腳本中使用的編程語言

contentType:設置了內容的類型和靜態頁面的編碼 (告訴瀏覽器以什麼編碼顯示)

pageEncoding:頁面本身的編碼格式 (寫頁面時用的編碼格式)

上面的代碼等價於servlet裏: ontentType("text/html; charset=gbk");

import:導入其他的包和類; 其中,JSP默認導入的包是.*

//具體的包和類

//包下的所有類

//連寫,逗號分隔

Session:指示當前的jsp是否參與會話 (默認爲true; 參與會話)

通過指令使當前頁面與session不可會話:

session="true"時,可用內建對象session直接訪問會話,例如:

errorPage:

isErrorPage:Jsp頁面中出現異常的處理方式

對於有可能出現異常的頁面:

//異常時會跳轉到處理異常的頁面;這頁面自己寫

在有可能異常的地方打印原因: throw new Exception("數據庫連接出錯");

對於處理異常的頁面()裏:

,其中使用把異常信息打印出來

isThreadSafe——此屬性已經不再使用(已廢棄)

當前Jsp頁面是否線程安全 default--->true

//普通的Servlet,可以併發處理用戶請求

//相當於Servlet實現了SingleThreadModel

ude指令

把目標頁面的內容包含到當前頁面,產生頁面疊加以後的輸出效果 //相當於將兩個頁面合併;編譯時就包含進來

//可插入任意位置

ib指令

留在JSTL裏講解。

五、JSP中的註釋

格式註釋

編譯器會忽略掉此類註釋中的內容(客戶端的源碼看不見)

風格註釋

編譯器會執行此類註釋中的代碼(客戶端的源碼看得見)

等價於tln("")

這種註釋方式不好的地方就是當頁面註釋信息太多的時候會增大服務器的負荷。

還有註釋信息需要在網絡上傳輸,從而降低效率;內部程序員的測試數據一般不能寫在這種註釋中,以免泄露。

六、動作(Action)

JSP的動作包括:

forward、include、useBean、setProperty、getProperty

ard動作

形式:

等價於 Servlet中通過ard();

可以傳參數

ude動作

形式:

等價於 Servlet中通過ude();

Include動作也可以傳參數

與比較:

include動作在運行期處理(include指令編譯期),jsp:include包含的是所包含URI的響應,而不是URI本身。

這意味着:jsp:include 對所指出的 URI 進行解釋,因而包含的是生成的響應。

對於頁面是靜態內容,這沒有太大的關係。但如果是動態內容,include動作可傳參數。

flush 屬性

flush 指示在讀入包含內容之前是否清空任何現有的緩衝區。

JSP 1.1 中需要 flush 屬性,因此,如果代碼中不用它,會得到一個錯誤。

但是,在 JSP 1.2 中, flush 屬性缺省爲 false。

建議:由於清空大多數時候不是一個重要的問題,因此,對於 JSP 1.1,將 flush 設置爲 true;

而對於 JSP 1.2 及更高版本,將其設置爲 false 或不設置(用默認值)。