Originally posted by Paul Sturrock:
A 4 year C#/ASP.Net veteran!? My, you must have been quick off the mark...
You have some questions, I'm feeling talkative so here are some answers:
1. Its personal choice really. Struts is just a set of custom taglibs. I'm sure there are more. Given your background you might want to consider Java Server Faces - which many people find easier to use than Struts etc. ASP.NET's WebControls are pretty much identical in behaviour to tag libraries.
2. Yes. JSP is just a scripting language which genrates servlets. Custom tags are the same. There may be no reason to write them explicity, but all Java web apps use them implicitly.
3. You can get open source connection pooling implementations; JDBC doesn't include an implementation. JDBC includes transaction support for Database operations. If you need transactions for more than that you'll need to use JTA, for which you'll need a Transaction Manager. Transaction Managers come with containers true, but you don't need EJB to use JTA.
4. Yes. Without EJB, the need for an app server decreases considerably.
5. Depends on what container you are using. Tomcat - you just drop your applciation into the deploy directory. Weblogic and JBoss are the same. (caveat: assuming you have correctly specified any deployment file you need) WebSphere is a more complicated beast.
6. Hibernate is very useful. For any persistance needs - you'd be well advised to look at it (or if you prefer som other ORM layer). Spring sounds like it may be something you could find use for - since it is basically best summed up as "J2EE without an app server".
7. Writing reusable JDBC frameworks is not a trivial task. Which is why there are so many open source implementations for people to reuse. JDO is "standard". Whether it survives into the future is perhaps questionable.
8. Ant is invaluable. One of the places J2EE really fails when compared to MS's newer offerings (I have deployed complex Windows DNA apps before, and that is just a nightmare - but .NET is much, much better). Getting used to using it early is a good idea. IDE's will do its work for you, but Ant is much easier to take from one environment to another. WARs, JARs, EARs are effectively the same things. They are named differently only to highlight what purpose they serve.
9. Strictly, no. "JavaBeans" are a much older technology used specifically to create components used in GUI building. The term "Java Bean" in the context of Web Apps usually just means an object with properties. Simple as that - so yes it is basically a POJO.
10. Hmm. "Actions" are just basically a part of an MVC design. Struts is a good example of an MVC based framework for web applciation building.
11. J2EE 1.5? Eventually. We'll not know how good it is till its released and widely supported by the main app server vendors, which will probably be a long way away, so don't worry about it for now.
[ October 29, 2004: Message edited by: Paul Sturrock ]