Over a million developers have joined DZone.

Java Web Application Development Kick off – Technical Items

· Java Zone

Check out this 8-step guide to see how you can increase your productivity by skipping slow application redeploys and by implementing application profiling, as you code! Brought to you in partnership with ZeroTurnaround.

Recently I got a chance to start development of a new application. During initial analysis I thought of having a list of constituents for development of a web application. I tried to look on the web for it but couldn’t gather much on it. Then I decided to prepare a list on my own. Once I finished preparing the list, I find it helping me too much in planning and project execution. Here in this blog I am sharing the list and hoping that this would help other as well. In this I have mentioned tools/api/software that can be used but no recommendation of anyone and there could be lots more for a task.


RequirementDescriptionFew Sample Available API/Tool/Software options
Application Server Required for
- Application Deployment
- Could be different for dev and prod environment
- if required access LDAP,JNDI And connection pooling features can be used
Tomcat,Jboss, WebLogic, WebSphere….
AuditingRequired for Audit requirement for the application.
- Action based auditing
- Transaction based auditing
Log4j or slf4j, ApacheCommonLogging.
AuthenticationRequired to Authenticate a used entering into systemLDAP, JAAS, Simple J2EE container based, Database/file storage or authentication information
CachingRequired at different layers
- Application server level
- Application level for session
- Application level for populating list/combos

Session based, application server based, custom code
Chart/Graph ReportsRequired for creating good looking and user friendly reports Jasper Reports
Connection PoolingRequired to improve the performance of database operations in a data centric applicationApplication server based or api from vendor(primrose and many more)
Continuous Integration/Software ConfigurationRequired for Software Configuration managementSubversion, Team City
Data tablesRequired for displaying data table on screen with pagination and other actionsDisplay Tag, GWT, JSF
DatabaseRequired for storing application dataMySQL, Oracle, SQL Server, Postgres
Defect TrackingRequired for defect trackingExcel sheets, Sharepoint tasklist, Bugzilla, JIRA
LoggingRequired for logging
- different levels.
- different types of output based on log level
Log4j or slf4j, ApacheCommonLogging.
MVCApplication request Control and NavigationJSF, Spring webflow, Struts2, or simple JSP/servlet
Page Design/ InclusionPage inclusion mechanismTiles
EncryptionHow to encrypt secret information like passwordsPassword Hashing or
Multiple level of security, or relying of external system like LDAP for the same.
PersistenceRequired to persist the data in application (ORM or Normal JDBC)Hibernate, JPA, Ibatis, Spring JDBC Template
Project build/makeAutomatic build and distribution of applicationMaven, Ant, Gradle
Tabular ReportsReportsJasper Reports
UI Components and pagesUI designJSPs, Flex
Unit testAutomated unit testingJunit , HttpUnit
WebServicesExposing application funtionality via web servicesRESTful webservices,SOAP based Web Services Spring remoting, Axis2, Xfire
XML ProcessingXML handlingJAXP (SAX, DOM), JAXB


Suggestions to improve this list are welcome.

From http://sudhirmongia.blogspot.com/2010/12/java-web-application-development-kick.html

The Java Zone is brought to you in partnership with ZeroTurnaround. Check out this 8-step guide to see how you can increase your productivity by skipping slow application redeploys and by implementing application profiling, as you code!

Topics:

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}