JSP technology is well-known, supported by most application servers, and endorsed by the J2EE Blueprints. Why would you choose otherwise? In this first of a two-part series, learn about the Tea template language and how Tea can be a viable alternative to JSP technology.
This article takes a new look at UPC symbols and bar codes, and describes how you can use Java to read information from a UPC bar code. The authors explain how to expedite and organize your enterprise operations that revolve around an IBM DB2 database. The sample application described in the article includes downloadable code.
Add more versatility to your existing Java framework. The same framework supports file access, network access, character conversion, compression, encryption and so forth. This article presents a framework that lets an application efficiently read data from a source that only supports writing data to an output stream.
Examine the roots of the double-checked locking idiom, why it was developed, and why it doesn't work. The Java programming language contains several useful programming idioms. It also contains some that further study has shown should not be used. Double-checked locking is one such idiom that should never be used.
Ant, from Jakarta project at the Apache Foundation, has become a de facto standard for building Java projects. You may already be using it to create automatic builds. It's easy enough to tailor those builds to your needs by customizing the build files; but what if you want to wait until run time to set certain properties? This article shows you how to extend Ant to produce builds that are interactive at run time; users can follow prompts to change parameters each time they conduct a build without having to deal with unfamiliar build files. You can incorporate this functionality into your builds to provide a smoother and more flexible experience for your end users.
The Java 2 Platform, Micro Edition (J2ME) offers great tools for developers, porting the Java platform's network-centric and platform-agnostic worldview down to memory- and processor-limited devices. This article explains the basics of the J2ME world, showing you the building blocks of the platform and demonstrating a sample application.
Glass box extensibility refers to the ways in which a software system may be extended when the source code is available for viewing, but not for modifying -- it lies as the happy medium between black box design (in which extensions are built without viewing the original code) and open box design (extensions are coded directly into the base code). Because the new extensions are based directly on the original code but don't alter it, the glass box design is probably the most effective, and safest, method of extending a software system. This article expands on the topic of glass box extensibility touched on last month in this column. After reading this article, you'll know when to use the glass box and will have some tips on how to implement it.
Java 2D may be the most obvious solution for programming 2D graphs in Java programs, but it's not the only one. This article proposes an elegant alternative in the form of Java Objects for Science (JSci), an open-source package that lets you create 2D bar graphs, pie charts, and line graphs in Swing.
Project Jxta is a community-run attempt to build a utility application substrate for peer-to-peer applications. The initial reference implementation of Jxta includes a command-line shell that allows experimentation with the core Jxta platform without programming. This article takes us through a hands-on tour of the <a href="http://www-106.ibm.com/developerworks/java/library/j-p2pint2?open&l=766,t=grj,p=Jxta2">Jxta shell</a>. You'll explore its command set and extend its capability by writing your own custom commands using the Java programming language.
Web services and J2EE connectors promise to simplify the integration of heterogeneous enterprise information systems and provide a way for business partners to share their respective applications' functionality over the Internet. This article uses an insurance broker scenario, in which the programmatic functions from legacy transactions are incorporated into a Web application, to illustrate these capabilities.