http://www-106.ibm.com/developerworks/java/library/j-tomcat/

解决方案 »

  1.   

    以下是相对于上面地址的中文版面:
    http://www-900.ibm.com/developerWorks/cn/java/j-tomcat/index.shtml其中有这样一段话:
        我们定制的包装响应能方便地从帮助类 HttpServletResponseWrapper 中导出。这一类粗略地执行许多方法,允许我们简单地覆盖 getOutputStream() 方法以及 getWriter() 方法,提供定制输出流的实例。我也看过上面这段话,只不知其具体是怎样实现的,
    “接口”这种东西的主要用途,就是为了实现外部访问某些类中定制的对象,而提供方便吗?
      

  2.   

    api上不是有嘛,看看源码,采用的好像是适配器模式
    public class HttpServletResponseWrapper extends ServletResponseWrapper
       implements HttpServletResponseProvides a convenient implementation of the HttpServletResponse interface that can be subclassed by developers wishing to adapt the response from a Servlet. This class implements the Wrapper or Decorator pattern. Methods default to calling through to the wrapped response object. 
      

  3.   

    API DOC中的东西,我看过N遍了!!!!它只是说出有什么用,我想知道的是它是怎么与容器通信的:(这种逻辑真烦人。像javabean的属性可以从request自动匹配,我倒能理解。
      

  4.   

    明白一点儿了, 虽然还是有些隐隐约约的,这种机制有点像VC中的回调函数,设为xxx(),VC是把一个函数地址传递给另一个对象A,在某种情况下下,某个要捕获的事件发生时,对象A就会调用并执行xxx()。java的接口机制也是如此,在接口中声明xxx()函数,而xxx()函数的实现则在某一个扩展了接口的类A里,只要把这个类A的实例,注册给可能用到xxx()函数的对象B(其实是B中的一个接口实例,我觉得在上面我问的那个问题里,B就代表容器),对象B就可以通过捕获触发事件,来选择何时让接口实例运行xxx()。当初学习java接口这一节时,根本就看不懂啊,现在总算明白一点了。