Chapter 1: Apache Tomcat vendor lock-in problems, enabling users to enjoy the benefits of a competitive marketplace. The Java slogan along these lines is Agree on standards, compete on implementation, meaning that the vendors all cooperate in establishing universal Java EE standards (through participation in the JCP) and then work hard to create the best application server implementation of those standards. That s the theory, at least. In reality, this happy vision of vendor neutrality and open standards is slightly marred by at least two factors. First, each application server is likely to have its own eccentricities and bugs. This leads to a popular variation on the famous Write Once, Run Anywhere Java slogan: Write Once, Test Everywhere. Second, vendors are rarely altruistic. Each application server typically includes a series of powerful features that are outside the scope of the Java EE APIs. Once developers take advantage of these features, their application is no longer portable, resulting in vendor lock-in. Developers must, therefore, be vigilant to maintain their application s portability, if such a capability is desirable. Tomcat and Application Servers Up to this point, Tomcat has been referred to as an implementation of the Servlet/JSP APIs (i.e., a Servlet container). However, Tomcat is more than this. It also provides an implementation of the JNDI and JMX APIs. However, Tomcat is not a complete Java EE application server; it doesn t provide support for even a majority of the Java EE APIs. Interestingly, many application servers actually use Tomcat as their implementation of the Servlet and JSP APIs. Because Tomcat permits developers to embed Tomcat in their applications with only a one-line acknowledgment, many commercial application servers quietly rely on Tomcat without emphasizing that fact. The JBoss and JOnAS application servers mentioned previously make explicit use of Tomcat. Developers seeking to create Java Web applications that utilize the Servlet, JSP, JNDI, and JMX APIs will find Tomcat an excellent solution. However, those seeking support for additional APIs will probably be better served to either find an application server, or use Tomcat in addition to an application server. A third option is to find an implementation of the individual Java EE APIs required and use them in conjunction with Tomcat. This piecemeal approach is perfectly valid, although integration problems may manifest themselves. Do you always need a full-fledged Java EE application server to develop enterprise applications? The short answer is It depends on your requirements. An increasing number of Web sites eschew the traditional Java EE technologies especially EJB and develop fairly complex applications with lightweight and often open source components. These typically use an application framework such as Struts or Spring, or an object-relational mapping framework such as Hibernate all running in a state-of-theart Servlet container, i.e., Tomcat! Tomcat and Web Servers Tomcat s purpose is to provide standards-compliant support for Servlets and JSPs. The purpose of Servlets and JSPs is to generate Web content such as HTML files or GIF files on demand, using changing data. Web content that is generated on demand is said to be dynamic. Conversely, Web content that never changes and is served up as is, is called static. Web applications commonly include a great deal of static content, such as images or Cascading Style Sheets (CSS).
For high quality website hosting services please check tomcat web hosting website.