givanse/mvc-tree

View on GitHub
app/templates/dpatterns/model2.hbs

Summary

Maintainability
Test Coverage

<p>
  A design pattern used in Java Web applications described in
  {{link-to-blank 'JavaServer Pages - Specification 0.92'
                  'http://www.kirkdorffer.com/jspspecs/jsp092.html#model'}} (October 1998, if not before).
  A year later after release it was formally associated with MVC. The diagrams 
  in the that link show a MVC-like design, but without calling it that explicitly.
</p>

<p>
  When JavaServer Pages (JSP) as a template technology for Java was created, the initial reaction was “just like ASP”. It was also the case that the JSP page was the end point, with URLs ending in .jsp very common. Other technologies (Perl and alike) already had more abstracted ways of composing web applications, and something was needed for the Java servlet ecosystem.
</p>

<p>
  "Model 2" mentioned in the 0.92 JSP spec, became influential amongst Java web developers as a better way to construct applications closer to the tenets of MVC. JavaWorld perhaps had the most
  {{link-to-blank 'sticky article of the time'
                  'http://www.javaworld.com/article/2076557/java-web-development/understanding-javaserver-pages-model-2-architecture.html'}}
  For some Java developers, this was the first time they had been exposed to MVC.
</p>

<p>
  Later, the first big web framework in the Java community to embrace Model 2 wwould be Struts 1.0. Indeed, Struts was the poster child of Model 2 architecture.
</p>

<p>
  In retrospect It was really only a small advance, but it heralded a shift away from each server-side generated page being its own thing, to pages being part of a larger design with a front-controller orchestrating.
  There is another writeup at 
  {{link-to-blank 'Amero Publishing'
                  'http://emereo.net/success/model-2-history/'}}
  that seems to be an excerpt from a book of theirs.
</p>