首頁技術(shù)文章正文

使用動態(tài)代理完成字符集編碼過濾器的編寫

更新時間:2018-07-25 來源:黑馬程序員 瀏覽量:

1.1.1 需求:

無論 使用GET還是POST提交,到Servlet中只需要調(diào)用request.getParameter方法,中文亂碼就已經(jīng)處理好.

1.1.2 分析:1.1.2.1 技術(shù)分析:

【request中的方法的增強】

? 繼承                :能夠控制這個類的構(gòu)造.

? 裝飾者        :增強的類和被增強的類實現(xiàn)相同的接口,增強的類中獲得到被增強的類的引用.

* 接口中方法過多,只增強其中的某個方法.其他的方法也需要重寫.

? 動態(tài)代理:被增強的類實現(xiàn)了接口.

【代理的概述】

? 代理                :

? JDK中動態(tài)代理        :Proxy對象.

* Proxy.newProxyInstance(ClassLoader cl,Class[] interfaces,InvocationHandler ih);

【動態(tài)代理入門】:

1.1.3 代碼實現(xiàn):

1532495569292_62.png1532495574605_63.png1532495577762_64.png1532495582184_65.png




1.1.4 總結(jié):1.1.4.1 代理的企業(yè)應(yīng)用:

【Spring的AOP】

AOP的底層使用的就是代理機制:

* AOP        :面向切面編程.新的思想,用來解決OOP中遇到的一些問題?。?!

1.1.4.2 類加載器:

類的加載器:將class文件加載到JVM中執(zhí)行這個文件.

Java中將類加載器分成三類:

引導(dǎo)類加載器:                JAVA_HOME/jre/lib/rt.jar

     |

擴展類加載器:                JAVA_HOME/jre/lib/ext/*.jar

     |

應(yīng)用類加載器:                加載類路徑下的所有的class.

這些類加載器如何保證類只會加載一次而且不會重復(fù)加載:

類加載器的全盤委托機制:

class A {

String s;

}

由應(yīng)用類加載器得到A.class String,class,委托給擴展類加載器,擴展類加載器又委托給引導(dǎo)類加載器.引導(dǎo)類加載器加載String.class.將其他的類的class向下給擴展類加載器.擴展類加載器沒有找到.向下給應(yīng)用類加載器,將A.class 加載.



作者:黑馬程序員javaEE培訓學院
首發(fā):http://java.itheima.com/
分享到:
在線咨詢 我要報名
和我們在線交談!