By Sandeep Desai (http://www.thedesai.net)
Java is a language and a platform. There are
large number of Java, Vendor specific and open source frameworks and APIs for
developing thick applications, web applications and mobile applications
Java based APIs
are JDBC, Servlets, JSP, JSF, EJB and Web
Services. Some of the popular open sources API and frameworks available are
Struts, Spring and Hibernate. Some vendor based frameworks
are Oracle
ADF
Web
Applications can be rich client AJAX
based or HTML based
Ant for building Java Applications
JUnit Java Testing Framework (See my sample)
Eclipse (Open Source IDE for Java UML etc)
Apache Tomcat ervlet and JSP Container (pache
Open Source)
Apache Axis (Java Web Services)
Apache Geronimo Application J2EE Server
(Apache Open Source)
Even if you do client side validation, you
should do server side validation to make sure that invalid data is not entered
by customers
Struts is a configurable MVC framework
that simplifies the job of developing web applications
Struts is a Model2 Framework
Struts Components
Struts
Struts Powerpoint
Presentation
Free
Jakarts Struts Live Book PDF
Java Server Faces is an alternative to
Struts. MyFaces is Apache
implementation of Java Server Faces
Spring is a J2EE framework and aims to
simplify J2EE development
You can use all of Spring's functionality
in any J2EE server, and most of it also in non-managed environments. A central
focus of Spring is to allow for reusable business and data access objects that
are not tied to specific J2EE services. Such objects can be reused across J2EE
environments (web or EJB), standalone applications, test environments, etc
without any hassle.
Spring has a layered architecture; all its
functionality builds on lower levels. So you can e.g. use the JavaBeans
configuration management without using the MVC framework or AOP support. But if
you use the web MVC framework or AOP support, you'll find they build on the
configuration framework, so you can apply your knowledge about it immediately.
Spring uses a setter based dependancy injection
pattern (Inversion of Control)
An
Introduction to AOP Programming with the Spring Framework by Russell Miles
Pro
Spring by Rob Harrop Jan Machacek
The goal is to make the core logic simpler to write and test
AOP use cases
AspectJ and Spring are the most popular AOP frameworks
Aspects and pointcuts are expressed in AspectJ language. Pre-compiler generates Java code. An .lst file specifies which Aspects apply to the subsystem. There is no runtime support for turning Aspects on or off. AJDT Eclipse plug-in is available
Provides dynamic proxy-based approach to implementing AOP (using Java Reflection APIs). Target application classes must implemented interfaces. Uses springconfig.xml for Spring Framework and Spring AOP configuration. Uses AOP alliance. Pointcuts and advice are implemented using Spring's IOC (Inversion of control) framework. IOC is a POJO with a Java Bean setter method. Spring AOP comes with built in transaction and security support
http://ramnivas.com/
author of AspectJ In Action
See SCJP notes for Java Fundamentals
Fundamentals.java
demonstrates primitive data types, arrays, controls etc
Objects.java
inheritance, exceptions, inner classes
JavaCollections.java
demonstrates how to create Lists, Sets and Hash Tables (Associative Arrays)
JavaThreads.java demonstrated how to create and use Threads
Java and JDBC, Oracle
JDBC FAQ
Java Basics and Sun
Certified Java Programmer Notes
J2EE is a set of API and
services. The services are typically implemented in an Application server. The
API/services for J2EE 1.3 are
SOA is a standards-based platform that lets you model,
develop, find, and combine services into flexible business processes
Products needs for SOA
Web services is a set of XML-based technologies (SOAP, UDDI, WSDL) that are the means by which interoperable application-to-application communication is carried out on the World Wide Web through a set of standard programmatic interfaces. Web services are a set of implementation technologies, whereas SOA is an architectural style or strategy. SOA uses web services
SOAP Version 1.2 is a lightweight protocol intended for exchanging structured information in a decentralized, distributed environment. It uses XML technologies to define an extensible messaging framework providing a message construct that can be exchanged over a variety of underlying protocols. The framework has been designed to be independent of any particular programming model and other implementation specific semantics.
Books
Designing Web Services with the J2EE(TM) 1.4 Platform: JAX-RPC, SOAP, and XML Technologies