首页技术文章正文

使用动态代理完成字符集编码过滤器的编写

更新时间:2018-07-25 来源:黑马程序员 浏览量:

1.1.1 需求:

无论 使用GET还是POST提交,到Servlet中只需要调用request.getParameter方法,中文乱码就已经处理好.

1.1.2 分析:1.1.2.1 技术分析:

【request中的方法的增强】

Ø 继承                :能够控制这个类的构造.

Ø 装饰者        :增强的类和被增强的类实现相同的接口,增强的类中获得到被增强的类的引用.

* 接口中方法过多,只增强其中的某个方法.其他的方法也需要重写.

Ø 动态代理:被增强的类实现了接口.

【代理的概述】

Ø 代理                :

Ø JDK中动态代理        :Proxy对象.

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

【动态代理入门】:

1.1.3 代码实现:

1532495569292_62.png1532495574605_63.png1532495577762_64.png1532495582184_65.png




1.1.4 总结:1.1.4.1 代理的企业应用:

【Spring的AOP】

AOP的底层使用的就是代理机制:

* AOP        :面向切面编程.新的思想,用来解决OOP中遇到的一些问题!!!

1.1.4.2 类加载器:

类的加载器:将class文件加载到JVM中执行这个文件.

Java中将类加载器分成三类:

引导类加载器:                JAVA_HOME/jre/lib/rt.jar

     |

扩展类加载器:                JAVA_HOME/jre/lib/ext/*.jar

     |

应用类加载器:                加载类路径下的所有的class.

这些类加载器如何保证类只会加载一次而且不会重复加载:

类加载器的全盘委托机制:

class A {

String s;

}

由应用类加载器得到A.class String,class,委托给扩展类加载器,扩展类加载器又委托给引导类加载器.引导类加载器加载String.class.将其他的类的class向下给扩展类加载器.扩展类加载器没有找到.向下给应用类加载器,将A.class 加载.



作者:黑马程序员javaEE培训学院
首发:http://java.itheima.com/
分享到:
在线咨询 我要报名
和我们在线交谈!