There's probably as many models as there are programmers. At the enterprise-scale level you have Enterprise Java Beans. At a less complex/smaller scale level there's object-relational mapping tools like Hibernate which sit between your application and the database and handle the nasty work of persistence. It is also common to "roll your own" Data Access Objects to create a persistence layer between your application and the database. Then the simplest/least scalable level would be to have your jsp's or servlets directly access the database using JDBC. There's no substute for reading a lot and writing a lot of code when learning about web apps. I found the Oreilly Java Servlets and Java Server Pages books invaluable when starting out.