窗口工具包通常提供3种类型的对象,这些对象大大简化了灵活、可扩展和可重用应用程序的实现过程,它们是组件、容器和布局管理器。组件是图形对象,如按钮、菜单或列表。容器是一组组件,布局管理器设置容器组件的位置和大小。组件、容器和布局管理器通常用两种设计模式实现:符合和策略。用于实现组件和容器的复合设计模式指定容器也是一种组件,这样就可以将任何组件(甚至是容器)放在任一容器中。这一方便的特性使得可以按照树型结构以任意深度嵌套组件。
布局管理器是使用策略模式实现的,策略模式定义了算法集,并将每种算法封装起来,这就使得布局算法之间可以互换。将布局封装起来,还可以在不改变使用算法的容器的条件下,修改布局算法。JSP没有提供类似于组件、容器或布局管理器的对象。但JSP具有两个特色:定制标记和包含web组件的能力,利用这两个特色,就可以实现个人需要的组件、容器和布局管理器。
区域和模板分别与容器和布局管理器类似。节与组件不同,因为节不处理事件,但是,节和组件也有相似指出,因为节重现内容,内容可以是HTML文件或JSP页面。