|
_______________________|________________________
| |
HttpServletRequest ServletRequestWrapper
___|_______________ _______________|___________________
| |
Request HttpServletRequestWrapper
(org.apache.catalina.connector) _______________|__________________
|
XXXHttpServletRequestWrapper
在Tomcat源码中,ServletRequest是请求的接口,HttpServletRequest 是这个接口的继承者;
ServletRequestWrapper是ServletRequest接口的包装者(装饰者);
HttpServletRequestWrapper继承ServletRequestWrapper,所以它也是ServletRequest接口的包装者(装饰者);
同时,HttpServletRequestWrapper也实现HttpServletRequest接口,可以认为它是HttpServletRequest 接口的实现者;
如果需要对HttpServletRequest 进行装饰,最直接的做法就是自定义类 XXXHttpServletRequestWrapper,继承 HttpServletRequestWrapper。