java-web複習階段

 

 

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

五、pageContext對象
(1)做爲入口對象獲取其餘八個對象
(2)做爲入口對象獲取其餘域中的數據
六、EL表達式~~~
獲取數據、執行運算、獲取經常使用的開發對象、調用java的方法
 獲取數組中的數據:能夠經過 ${數組名[下標]}獲取數組中的內容。
 ~~~獲取集合中的數據:能夠經過 ${集合名[下標]}獲取集合中的內容
    c:forEach items="${list}" var = "obj"
       ${obj.屬性名}web

 ~~~獲取Map集合中的數據:能夠經過 [鍵]  或  .鍵 來獲取Map中數據
    c:forEach items="${map}" var="entry"
         ${entry.key.屬性}   ${entry.value}
 ~~~獲取javaBean對象的屬性值:${對象名.屬性名}
EL表達式調用javaBean中的方法~
六、JSTL
重點掌握 c  和fmt處理日期
核心標籤 c
一、c:out  ~~
輸出,能夠指定默認值,能夠設置是否轉義
二、c:set  ~~
標籤用於把某一個對象(基本數據類型或String)存在指定的域範圍內;
或設置Web域中的java.util.Map類型的屬性對象或JavaBean類型的屬性對象的屬性值
三、c:remove~
標籤用於刪除各類Web域中的屬性
<c:remove var="varName" [scope="{page|request|session|application}"] />
若是沒有指定哪一個域,則所有刪除。
四、c:if~~~   if 或  if --else
test=「boolean表達式」  若是爲true,顯示<c:if>內容</c:if>
                   若是爲false,不顯示<c:if>內容</c:if>
五、<c:catch>~~
標籤用於捕獲嵌套在標籤體中的內容拋出的異常,其語法格式以下:
<c:catch var="e">
   <%=1/0 %>
   </c:catch>
   ${e.message}
六、<c:choose>,<c:when>和<c:otherwise>   if-else if -...-else
七、c:forEach~~~~
標籤用於對一個集合對象中的元素進行循環迭代操做,
或者按指定的次數重複迭代執行標籤體中的內容。   面試

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

自定義標籤的執行過程~:
  一、當jsp頁面執行到自定義標籤時,首先建立出自定義標籤處理類對象,建立出來後
 會當即調用setJspContext方法將當前頁面的PageContext傳入
  二、若是當前標籤有父標籤,則將調用setParent()方法,將父標籤傳入。若是沒有父標籤,這該方法不執行。
  三、若是當前標籤有標籤體,則調用setJspBody方法,將封裝了標籤體信息的JspFragment jspBody傳入,
若是沒有標籤體,則該方法不調用。
  四、若是具備屬性,則調用屬性的setXxx()方法將屬性值傳入。
  五、最後調用doTag方法執行自定義標籤的處理邏輯。設計模式

六、MVC~~~             版本管理器—(SVN、CVS) EasyMall
Servlet+JSP+JavaBean(模式:Model-2,也被稱爲MVC設計模式)
C(Control)---Servlet:接收參數,控制跳轉
V(View)---JSP:負責顯示
M(Model)--JavaBean:處理業務邏輯,操做數據庫
七、耦合與解耦
改造EasyMall--軟件分層--耦合->解耦  
工廠類+接口+配置文件  管理不能避免的耦合。數組

耦合:在軟件分層中咱們但願各個層應該是對立的,修改替換某一個層應該不影響到其餘層,
可是若是亂傳遞屬於某一個層特有的對象,形成層與層之間關係過於緊密,當修改某一個層的時候,
不得不修改其餘的關聯層,這和最初的設計思想違背。這種有害的過於緊密的層與層之間的關係被
稱爲耦合。緩存

解耦:解除耦合的過程
   首先要保證只屬於某一個層的對象不亂傳遞。
   對於沒法比較的耦合,能夠經過「工廠類+接口+配置文件的方式」將耦合提取到配置文件中
 進行管理。session

八、泛型~~~
Java5開始提供的新特性,表示不肯定類型
注意:泛型是提供給編譯器(javac)使用的,它用於限定集合的輸入類型,讓編譯器在源代碼級別上,
擋住向集合中加入非法數據。
  但在編譯器編譯完帶有泛型的java程序後,生成.class文件中將不在帶有泛型,使程序的運行效率不收到
影響。這個過程被稱爲"擦除"app

自定義泛型
3.2.一、方法上的泛型~~~
泛型須要先定義再使用,方法上的泛型須要定義在方法返回值類型的前面,一般是使用一個大寫的英文
字母(sun公司推薦T),也能夠是任意的字符;可是不要使用java中的關鍵字或經常使用類(eg:String)
定義在方法上泛型的做用範圍是當前方法的內部。
3.2.二、類上的泛型~~~
  定義在類型的泛型的做用範圍是當前類的內部。
  泛型須要先定義再使用,類上泛型須要定義在類名以後,一般使用大寫字母。
  類型定義的泛型,須要在建立對象/引用時須要明確指定泛型的具體類型。
若是在建立對象時,沒有明確的指定泛型的具體類型,則默認爲泛型的「上邊界」。
  在類上定義的泛型不能在靜態方法上使用;若是想在靜態方法上使用,須要本身定義。jsp

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

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

 攔截下來後控制是否容許訪問資源(權限控制),
 或者在訪問資源執行以前或以後作一些其餘的操做(全站處理亂碼、禁止jsp頁面緩存、權限控制)。
8.二、過濾器的開發


九、MD5加密

十、監聽器~~~

相關文章
相關標籤/搜索