EJB design: web application design
I am at the beginning of developing j2ee application.
What components could you advise for me.
My task is to use the following design patterns
2) validation of POSTed inputs on the server side
3) session proper invalidation
4) DAO with connection pooling
5) Objcet cache
6) Integration with apache + SSL
The application is not so huge, about 30 pages.
Help me please.
I recommend the Struts framework form apache. (See jakarta.apache.org/struts.) It has great support for MVC and validation.
4) You should definitely use the connection pooling provided by the Web container according to the J2EE spec. (and not write your own connection pool). Actually, you break the J2EE spec. if you don't!
5) What type of objects?
I have read about struts validation on the server side, it seems for me too unfriendly. And about struts MVC, I want for example such thing
See, I map the MVC servlet only on /servlet/mvc and the I use calling the controllers using the "control" parameters posted or passwed by URL.
4) What about the pooling, does Tomcat provide the connection pooling to database?
5) For example an object that is born from some XML. Maybe it is a template of something, that I parse only once, and then use in all sessions.
I am about to start down the same path, I have used wrox professional jsp v2 as my reference for design methodologies. However, I do think there is a great deal of stuff in there that may be 'overkill'.
I have decided the following for simplicity.
1. Use web.xml for jdbc stuff, and any application-wide configuration
2. Develope a 'service-to-workers' dispatcher aproach.
3. Not to use struts at all.
4. Not to use custom tags, try and use beans for all business logic and servicing and communications
I will be using Tomcat and MySQL.
I would like to use JNDI as opposed to resource bundles, but as I have already bitten off quite a lot, I may not get time to use JNDI, although I suspect it could be quite useful.
5) Object Cache...
// Tangosol's Coherence
Tangosol Coherence: Cluster your Work. Work your Cluster.