>> So I guess you are talking about avoiding EJB?
>
> Mostly, yes. I also want to avoid the huge amount of (often repetetive)
> xml text that seems to be a part of every j2ee web app. i understand I
> can do a lot of it with annotations now, which I will also like to look
> into.
Personally, I strongly dislike EJB. However, if it were possible to
rescue the situation, I think they may have achieved it with EJB 3.0.
Much of the XML cruft and all of the Home and Remote junk has disappeared
(or at least is hidden from you). EJB 3.0 entity beans are almost a joy
to use (well, in comparison to EJB 2.1 at least). The annotations,
borrowing much from Hibernate, make the ORM simple. The inheritance
restrictions are gone too.
> Can you think of a better approach then tomcat + hibernate like I
> suggested?
No idea what your requirements are but, if you just have web pages that
read and write to a database back-end, then Tomcat + some web framework
+ POJOs for business objects + Hibernate for ORM is probably sufficient.
Keep things as simple as you can. There are dozens of web frameworks to
choose from. Struts is mature and widely used. I've also heard good
things about Wicket but haven't used it myself.
Dan.

Signature
Daniel Dyer
http://www.uncommons.org
Lew - 22 Nov 2006 04:03 GMT
> ... There are dozens of web
> frameworks to choose from. Struts is mature and widely used.
Mature is one word for it.
Struts does a great job of automating the controller and navigation logic for
Web applications, but some of its older libraries overlap functionality of
newer standards like JSP EL, JSTL and JSF. The Struts project has done a great
job of moving with the changes in its most recent incarnations; its web site
is chock-a-block with advice on how to use these standards in conjunction with
Struts.
Many people ignore this advice and use Struts libraries instead. There are
also ways to use the core Struts framework to engender horrid complexity
should one choose to do so. One could argue that any web app should have
sufficiently straightforward navigation requirements that Struts action
classes need not each dispatch to a zillion different processing stages, but
then some seem to disagree. Struts is flexible enough to satisfy the most
twisted spaghetti-logic addict.
I suggest using Struts in its leanest pure form, expecially its most recent
incarnation, preferring the newer standards to the older non-core Struts
libraries.
One could also write one's own controller servlet and simple "action" handler
layer. It's not a whole lot of work for most straightforward applications, but
it will help you appreciate Struts's value and how best to use it.
Going back to the original point about developing in the "simplest way": if
you ever think you need to "disable" the browser back button or refresh, you
have seriously lost your path. Make your transactions idempotent and don't
every try to change browser buttons. The misguided attempt to suppress
browser navigation idioms introduces amazing difficulties and astounding
schedule slippage to your projects.
The larger principle is that no framework or technology mix will protect you
from having to do correct analysis and modeling, or against the consequences
if you don't. Achieving the "simplest way to develop" depends on an
architectural approach and mindset more than on your tools.
- Lew