But the context isn't so clear. All of us who "work the web" have confronted tables.
Most of us are using "action-view-controller" frameworks for building web apps (in which some cases, a model gets used, and in some cases, actions are degenerate with controllers.) What exactly a controller is depends on your framework, and often controllers are stacked inside one another (in one system I work in, subcontrollers are stacked three deep.)
In that particular system, there's an "object model" built on top of objects in the implementation language that allows an extreme level of reuse -- if you create a new type in the model, default controllers and views get inherited automatically so you get a lot of cool stuff for free.