In a way, patterns can be like a religious text that can be interpreted in different ways by different people.
I could be wrong, but this is how I understand MVC:
MVC began as an three-tier architectural pattern...
Model - Database
View - GUI with access to Controller tier
Controller - business logic to link client with dynamic data from the database
With regards to Java, as in your question, depends on if you include
J2EE. If this is so, the trend in J2EE is to have a five-tier architecture...
Client (Web Browser)
Presentation (*will talk about soon)
Business (Processes info between Pres. & Int.)
Integration (Accesses Database)
Resource (Database)
*The presentation tier includes things like
Servlets,
JSP, and Javabeans (not EJB). The MVC is used as a design pattern within the presentation tier. The main purpose of using MVC is to make code in the tier more reusable. The best illustration I've seen of MVC in relation to J2EE comes from the SCWCD Exam Study Kit book - the chapter on Design Patterns. This book is really as essential to have as the saloon.
Since MVC isn't necessarily a "product" there is some vagueness to it, so don't read just one interpretation of it and agree with what you hear. Just like religion or
philosophy, listen to points from many sources and arrive at what seems to be truth. I hope the people that don't agree with my definition of MVC can present their view with an open mind - I hate being told that I'm the Anti-Pattern!