Some reader favorites:
EJB fundamentals and session beans
Create a scrollable virtual desktop in Swing
Wizard API updated!
Tim Boudreau has released a new version of the Swing Wizard library (version 0.997) that fixes the WizardException bug reported in JavaWorld's recent Open Source Java Project profile. The article's examples have been reworked to test out the new, improved WizardException. Thanks, Tim, for this helpful fix!
Open Source Java Projects: The Wizard API
If your servlet is to generate images on the fly, you first need to do image I/O (input/output). Specifically, you need to
generate an image in response to an HTTP request. The core Java API provides no direct facility for saving images of any type.
However, you can use Sun's Java 1.1 class library to do image I/O. Also, Sun's 1.2 image I/O offering includes a proprietary
package for encoding and decoding JPEG images. Since this code is in a com.sun package, it is not part of the core API and is not a standard extension; therefore, its dependent code is not portable. The
good news is that the approved Java Specification Request, JSR-000015, for a standard Java 2 extension, provides a framework
for performing image I/O. This adds support to the Java 2 platform for image I/O and provides a mechanism to write portable
code capable of dynamic image I/O. For this article, I create two examples, one using the Java 1.1 image I/O framework and
the other using Java 1.2 code.
The most common image format on the Web is GIF. GIF is widely supported by browsers, even old ones. Unfortunately, for writing image-generation code, GIF is potentially encumbered legally by a patent on its compression scheme. The two examples in this article create a JPEG and a PNG image. I will generate a JPEG image primarily because Sun's Java 1.2 code lets me generate this type of image. One difference between the GIF format and the JPEG format is that the GIF-compression algorithm is lossless, meaning that when the image data is subjected to a compress/decompress cycle the resulting data is identical to the original data (no information is lost); the JPEG algorithm is not lossless. Usually, the image degradation is not visible for the type of image you are generating. The second example generates a PNG image, which uses a lossless compression algorithm free of legal issues.
For this article, I will decompose the image presentation system into two parts. The first part, the Image servlet, is responsible
for responding to image requests and returning either an image or an error to the client. The second part is a class capable
of performing image I/O. For simplicity, the type of image generated is determined by passing the name of a Java class, which
should generate the image to the Image servlet. The Java class implements a simple interface for communication with the servlet.
The following code shows the interface that the ImageProducer class must implement:
Free Download - 5 Minute Product Review. When slow equals Off: Manage the complexity of Web applications - Symphoniq
![]()
Free Download - 5 Minute Product Review. Realize the benefits of real user monitoring in less than an hour. - Symphoniq