Em 1998, a atual Sun Microsystems publicou um release da especificação JSP, versão 0.92. Nesta especificação a Sun dizia haver dois modelos para uso de JSPs: Model 1 e Model 2.
Inclusive, o Model 1 defendia que toda a lógica de negócios deveria estar escrita na própria JSP.
Em dezembro de 1999, Govind Seshadri publicou um artigo no JavaWorld intitulado Understanding JavaServer Pages Model 2 architecture. Em uma de suas passagens, Govind dizia que era necessário retirar a lógica de negócios da JSP e escrevê-la em alguma estrutura de dados à parte. Neste caso, Govind utilizou um vetor para demonstrar tal estrutura. Portanto, fica claro que Govind estava demonstrando que as JSP representariam a camada de Visão do modelo MVC enquanto que a estrutura de dados vetor seria o Modelo.
Neste contexto, o Servlet representaria o Controlador, cuja finalidade era a de permitir uma comunicação entre a Visão e o Modelo. A partir de então, várias iniciativas surgiram para fomentar o Model 2 como, por exemplo, o framework Apache Struts, que foi criado no ano 2000.