java-web複習階段

來源:互聯網
上載者:User

標籤:other   md5   請求響應   過程   ext   mvc設計模式   end   each   public   

 

 

JSP中的重點知識
1、經典面試題!!!:
 <%! int a = 0;%>
<% int b= 0; %>
<%
a++;
b++;
out.write(a+"<br/>");
out.write(b+"<br/>");
%>
 第一次訪問時,a,b的值分別是多少
 第二次訪問時,a,b的值分別是多少
2、靜態引入和動態引入的區別
3、九大隱式對象~~~
4、四個範圍~~~
page域:參考(3)
request域:一次請求響應
session域:一次會話
application域:從web項目啟動之後,一直到項目關閉。

5、pageContext對象
(1)作為入口對象擷取其他八個對象
(2)作為入口對象擷取其他域中的資料
6、EL運算式~~~
擷取資料、執行運算、擷取常用的開發對象、調用java的方法
 擷取數組中的資料:可以通過 ${數組名[下標]}擷取數組中的內容。
 ~~~擷取集合中的資料:可以通過 ${集合名[下標]}擷取集合中的內容
    c:forEach items="${list}" var = "obj"
       ${obj.屬性名稱}

 ~~~擷取Map集合中的資料:可以通過 [鍵]  或  .鍵 來擷取Map中資料
    c:forEach items="${map}" var="entry"
         ${entry.key.屬性}   ${entry.value}
 ~~~擷取javaBean對象的屬性值:${對象名.屬性名稱}
EL運算式調用javaBean中的方法~
6、JSTL
重點掌握 c  和fmt處理日期
核心標籤 c
1、c:out  ~~
輸出,可以指定預設值,可以設定是否轉義
2、c:set  ~~
標籤用於把某一個對象(基礎資料型別 (Elementary Data Type)或String)存在指定的域範圍內;
或設定Web域中的java.util.Map類型的屬性對象或JavaBean類型的屬性對象的屬性值
3、c:remove~
標籤用於刪除各種Web域中的屬性
<c:remove var="varName" [scope="{page|request|session|application}"] />
如果沒有指定哪個域,則全部刪除。
4、c:if~~~   if 或  if --else
test=“boolean運算式”  如果為true,顯示<c:if>內容</c:if>
                   如果為false,不顯示<c:if>內容</c:if>
5、<c:catch>~~
標籤用於捕獲嵌套在標籤體中的內容拋出的異常,其文法格式如下:
<c:catch var="e">
   <%=1/0 %>
   </c:catch>
   ${e.message}
6、<c:choose>,<c:when>和<c:otherwise>   if-else if -...-else
7、c:forEach~~~~
標籤用於對一個集合對象中的元素進行迴圈迭代操作,
或者按指定的次數重複迭代執列標籤體中的內容。  

~~~varStatus:實現單雙行變色
  index,count

自訂標籤的執行過程~:
  1、當jsp頁面執行到自訂標籤時,首先建立出自訂標籤處理類對象,建立出來後
 會立即調用setJspContext方法將當前頁面的PageContext傳入
  2、如果當前標籤有父標籤,則將調用setParent()方法,將父標籤傳入。如果沒有父標籤,這該方法不執行。
  3、如果當前標籤有標籤體,則調用setJspBody方法,將封裝了標籤體資訊的JspFragment jspBody傳入,
如果沒有標籤體,則該方法不調用。
  4、如果具有屬性,則調用屬性的setXxx()方法將屬性值傳入。
  5、最後調用doTag方法執行自訂標籤的處理邏輯。

6、MVC~~~             版本管理器—(SVN、CVS) EasyMall
Servlet+JSP+JavaBean(模式:Model-2,也被稱為MVC設計模式)
C(Control)---Servlet:接收參數,控制跳轉
V(View)---JSP:負責顯示
M(Model)--JavaBean:處理商務邏輯,操作資料庫
7、耦合與解耦
改造EasyMall--軟體分層--耦合->解耦  
工廠類+介面+設定檔  管理不能避免的耦合。

耦合:在軟體分層中我們希望各個層應該是對立的,修改替換某一個層應該不影響到其他層,
但是如果亂傳遞屬於某一個層特有的對象,造成層與層之間關係過於緊密,當修改某一個層的時候,
不得不修改其他的關聯層,這和最初的設計思想違背。這種有害的過於緊密的層與層之間的關係被
稱為耦合。

解耦:解除耦合的過程
   首先要保證只屬於某一個層的對象不亂傳遞。
   對於無法比較的耦合,可以通過“工廠類+介面+設定檔的方式”將耦合提取到設定檔中
 進行管理。

8、泛型~~~
Java5開始提供的新特性,表示不確定類型
注意:泛型是提供給編譯器(javac)使用的,它用於限定集合的輸入類型,讓編譯器在原始碼層級上,
擋住向集合中加入非法資料。
  但在編譯器編譯完帶有泛型的java程式後,產生.class檔案中將不在帶有泛型,使程式的運行效率不收到
影響。這個過程被稱為"擦除"

自訂泛型
3.2.1、方法上的泛型~~~
泛型需要先定義再使用,方法上的泛型需要定義在方法傳回值類型的前面,通常是使用一個大寫的英文
字母(sun公司推薦T),也可以是任意的字元;但是不要使用java中的關鍵字或常用類(eg:String)
定義在方法上泛型的作用範圍是當前方法的內部。
3.2.2、類上的泛型~~~
  定義在類型的泛型的作用範圍是當前類的內部。
  泛型需要先定義再使用,類上泛型需要定義在類名之後,通常使用大寫字母。
  類型定義的泛型,需要在建立對象/引用時需要明確指定泛型的具體類型。
如果在建立對象時,沒有明確的指定泛型的具體類型,則預設為泛型的“上邊界”。
  在類上定義的泛型不能在靜態方法上使用;如果想在靜態方法上使用,需要自己定義。

public interface List<E> extends Collection<E>
List上的泛型也是定義在類上的泛型。

8、過濾器Filter~~~
8.1、過濾器概述
 Servlet的技術規範中定義了Servlet、Filter、Listener三門技術。
 過濾器可以攔截對資源的訪問,一個資源可以被多個過濾器所攔截,一個過濾器也可以攔截多個資源。

 攔截下來後控制是否允許訪問資源(許可權控制),
 或者在訪問資源執行之前或之後做一些其他的操作(全站處理亂碼、禁止jsp頁面緩衝、許可權控制)。
8.2、過濾器的開發


9、MD5加密

10、監聽器~~~

 

java-web複習階段

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.