While it's great to debate patterns in the abstract, when it comes to productivity, many times you have to pick a framework and accept what it wants to work with.
One case in point:
Struts is gaining popularity right now because it provides a lot of pre-built functionality that is easily extensible, is fairly light-weight, and (unlike many systems) doesn't suck you into a potentially expensive all-or-nothing commitment.
One thing that has become apparent (I suppose you could call it a meta-pattern) is that the cleanest way to connecting a JSP to a DBMS is to provide some form of facade - whether it be a custom proxy for an EJB/wrapper for JDBC code or a Struts Form Bean. Once you've determined that, the selection of pattern for the business logic becomes more a matter of what works well with your own needs and style. At the moment, I'm enamoured with Struts, so I'll use that as an example base.
In Struts, you may find it convenient to mix the Struts model for light-weight services with dedicated servlets for the "heavy lifting" parts. The Form Bean facade is self-contained, so you don't even need to duplicate database logic - the standalone servlets can use the same data access components that the Struts code uses.
The downside to an architecture like Struts is that while the individual components are simple, you tend to end up with a LOT of these simple individual components, and they must all be coded EXACTLY right - both internally and relative to each other, or you'll die the death of a thousand paper-cuts as you seek out and repair each mini-bug in its turn.
Or do like I do and cheat - I developed an open-source RAD tool called the EJBWizard that provides a GUI "fill-in-the-form" approach to designing EJBs. It's an extensible template-driven system. The current production release not only generates the prototype code for an EJB, but also
prototype JSPs for accessing and editing the generated EJB. I'm about to release a new Beta set of templates that generates all the requisite Struts code, properties, and assorted config files as well.
If you're in the "proof-of-concept" stage of development, you might want to get a copy of the EJBWizard and prototype some code. It might save you a lot of time. It's at
http://www.mousetech.com/EJBWizard.html