?
display-name元素提供GUI工具可能會用來標記這個特定的Web應用的一個名稱
?
description元素給出與此有關的說明性文本
?
context-param元素聲明應用范圍內的初始化參數。
?
filter?過濾器元素將一個名字與一個實現javax.servlet.Filter接口的類相關聯
?
filter-mapping?命名一個過濾器后,就要利用filter-mapping元素把它與一個或多個servlet或JSP頁面相關聯。
?
listener?servlet?API的版本2.3增加了對事件監聽程序的支持,事件監聽程序在建立、修改和刪除會話或????????? ?servlet環境時得到通知。Listener元素指出事件監聽程序類。
?
servlet?在向servlet或JSP頁面制定初始化參數或定制URL時,必須首先命名servlet或JSP頁面。Servlet元素就是用來完成此項任務的。
servlet-mapping?服務器一般為servlet提供一個缺省的URL:
http://host/webAppPrefix/servlet/ServletName。但是,常常會更改這個URL,以便servlet可以訪問初始化參數或更容易地處理相對URL。在更改缺省URL時,使用servlet-mapping元素。
session-config?如果某個會話在一定時間內未被訪問,服務器可以拋棄它以節省內存。可通過使用HttpSession的setMaxInactiveInterval方法?明確設置單個會話對象的超時值,或者可利用session-config元素制定缺省超時值。
mime-mapping?如果Web應用具有想到特殊的文件,希望能保證給他們分配特定的MIME類型,則mime-mapping元素提供這種保證。
welcome-file-list元素指示服務器在收到引用一個目錄名而不是文件名的URL時,使用哪個文件。
error-page元素使得在返回特定HTTP狀態代碼時,或者特定類型的異常被拋出時,能夠制定將要顯示的頁面。
taglib元素對標記庫描述符文件(Tag?Libraryu?Descriptor?file)指定別名。此功能使你能夠更改TLD文件的位置,而不用編輯使用這些文件的JSP頁面。
resource-env-ref 元素聲明與資源相關的一個管理對象。
resource-ref 元素聲明一個資源工廠使用的外部資源。
security-constraint 元素制定應該保護的URL。它與login-config元素聯合使用
login-config元素來指定服務器應該怎樣給試圖訪問受保護頁面的用戶授權。它與sercurity-constraint元素聯合使用。
security-role 元素給出安全角色的一個列表,這些角色將出現在servlet元素內的security-role-ref元素的role-name子元素中。分別地聲明角色可使高級IDE處理安全信息更為容易。
env-entry 元素聲明Web應用的環境項。
ejb-ref 元素聲明一個EJB的主目錄的引用。
ejb-local-ref 元素聲明一個EJB的本地主目錄的應用。
一般的MVC框架處理的問題包括
1.將web頁面中的輸入元素封裝成為一個(請求)數據對象。
2.根據請求不同調用相應的邏輯處理單元,并將(請求)數據對象作為參數傳入。
3.邏輯處理單元完成運算后,返回一個結果數據對象。
4.將結果數據對象中的數據與預先設計好的表現層相融合并展現給用戶。
1.介紹一下junit
???junit是一個用來單元測試的工具,它可以針對一個/多個類的單個或多個方法進行測試,還可以自動化套件測試.將junit.jar包從www.junit.org.載下來放到eclipse 項目中的java build path中.
2.創建一個TestCase
???File > New > JUnit Test Case 或者點擊"
"來創建一個TestCase
???代碼如下
???import junit.framework.TestCase;
???public class SampleTest extends TestCase {
???? private java.util.List emptyList;
???? /**
????? * Sets up the test fixture.
????? * (Called before every test case method.)
????? */
???? protected void setUp() {
????????? emptyList = new java.util.ArrayList();
???? }?
???? /**
????? * Tears down the test fixture.
????? * (Called after every test case method.)
????? */
???? protected void tearDown() {
????????? emptyList = null;
???? }?
???? public void testSomeBehavior() {
????????? assertEquals("Empty list should have 0 elements", 0, emptyList.size());
???? }?
???? public void testForException() {
????????? try {
?????????????? Object o = emptyList.get(0);
?????????????? fail("Should raise an IndexOutOfBoundsException");
????????? }
????????? catch (IndexOutOfBoundsException success) {
????????? }
???? }
}
這個例子有兩個方法需要測試,第一個方法測試list中沒有任何對象,第二個方法測試沒有使用斷言,它一定會成功
3.創建一個TestSuite
???通過測試套件可以運行多個測試用例
?? (3.1)選擇???File > New > Other... > Java > JUnit > JUnit Test Suite. 或者
Other... > Java > JUnit > JUnit Test Suite,
import junit.framework.Test;
import junit.framework.TestSuite;
???public class AllTests {
????public static Test suite() {
????????TestSuite suite = new TestSuite("Test for com.xu.Test");
????????//$JUnit-BEGIN$
????????suite.addTestSuite(SampleTest .class);
????????//$JUnit-END$
????????return suite;
????}
}