Course Summary
Administering Apache Tomcat training course covers the details of installing and configuring Tomcat Web Server.
Students will learn the details of the server.xml configuration file, an overview of Servlet and JavaServer Pages, a comparison of Tomcat to J2EE application servers, the Tomcat installation directories, deploying Java Web applications, the web.xml file, valves, logging, security realms, connecting Tomcat to Apache Web Server, hosting multiple Web sites, performance and scalability issues, load testing, clustering, monitoring, the Tomcat Manager and the Tomcat Administration tool.Duration
3 days.
Objectives
Upon completion of Marakana Tomcat Training course, you will be able to:
- Explain how Tomcat relates to Java EE (J2EE) and compares to other application servers (e.g. JBoss)
- Install and setup Tomcat on both Windows and UNIX-type environments
- Deploy, support, and troubleshoot applications on Tomcat
- Navigate Tomcat's directory structure
- Understand Tomcat architecture and configuration files: server.xml, context.xml, .properties, etc.
- Understand web application structure and configuration: web.xml
- Secure Tomcat and applications running on it
- Set up Tomcat for SSL
- Tune Tomcat's performance
- Explore different load-balancing and high-availability strategies with Tomcat
Audience
Marakana Tomcat Trahttps://marakana.com/admin/course.html?id=28#ining course is for web/application server administrators who need to be able to install, configure, run, and tune the Apache Tomcat Application Server.
To get the most benefit from the Marakana Tomcat Training course, you should be familiar with the basic principles of web/application server administration.
Additionally, prior exposure to any of these concepts can be helpful:
- Basic rules of XML (i.e., being able to edit XML files)
- HTTP protocol (i.e., the stateless nature of HTTP, the need for sessions, HTTP methods, SSL, etc.)
- Java environments (e.g., memory settings, automatic garbage collection, JDBC)
- Other Java EE (J2EE) application servers and basic concepts behind Java Web Applications
Please note that all these concepts are covered in the class.
Additional Notes
About Your Instructor
Aleksandar (Sasa) Gargenta is the technology brains at Marakana. Always on top of latest in software, Aleksandar is company's radar for technology that matters.
Aleksandar is the author of Marakana's Java, Advanced Java, Spring/Hibernate, JBoss, Apache, XML/XSL, and JUnit/TestNG courses. Phew. And if that's not enough, he's also the chief architect of Marakana Spark, the on-demand software platform that powers marakana.com and a number of other training companies.
As an instructor he's taught hundreds of courses for everyone from Apple to Disney, from NASA to the Department of Defense. His instructor ratings are consistently between Great and Outstanding.
Aleksandar also runs the San Francisco Java and San Francisco Android User Groups with over a thousand members between the two.
Sasa is also a father, photographer, hiker, and a race-car driver.
About the Platform
Marakana Tomcat Training course can be taught on both Windows and UNIX/Linux-type environments. The instructor covers both options during the training.
Marakana.com Runs on Tomcat

Marakana.com is written in Java using Spring and Hibernate frameworks. We deploy it on Apache Tomcat Application Server. Both Marakana Spark and Apache Tomcat are Java applications and thus run on Java Virtual Machine. Spark uses MySQL database for persistence. Our operating system of choice is Ubuntu Linux, for security and reliability reasons. So we practice what we teach. You will learn from real developers.
Trademarks
Apache™ and Tomcat™ are a trademark of The Apache Software Foundation. All other marks are the properties of their respective owners.
Java Meetup Organized by Marakana
Marakana team organizes and runs the San Francisco Java Meetup - an interactive group of Java developers. In our monthly meetings, we discuss Java landscape from both technology and business angles. We often have great presentations by industry experts, group discussions, as well as hands-on sessions. If you are in San Francisco Bay Area, we encourage you to join the group and meet other Java developers.
Outline
Apache Tomcat Training Overview
- Brief history of Apache
- The Apache Software Foundation
- The Jakarta Project
- Tomcat Licensing
- The J2EE Technologies
- Java Web Development
- Servlet/JSP Containers
Java Web Applications
- Overview of Servlets
- Advantages of Servlets
- Lifecycle of a Servlet
- Overview of JavaServer Pages
- A Simple JavaServer Page
- JSP and JavaBeans
- JSP Tag Libraries
- The MVC frameworks (e.g. Struts)
Installing Tomcat
- Downloading and Installing Apache Tomcat
- Overview of Installing Tomcat
- Download and install a JVM
- Download Tomcat
- Using the Windows installer
- Understanding Java memory managemenet and tweaking the JVM for performance
- Download and install Ant
Tomcat Directories
- Examining the Tomcat Installation Directories
- Tomcat Directory Structure
- The bin Directory
- common and shared Directories
- The conf Directory
- The logs Directory
- The server directory
- The work Directory
- The temp Directory
- The webapps Directory
- Web Application Directory Structure
- Deploying HTML and JSP Pages
- Deploying a Web Context
- Viewing the JSP Page
- Viewing the Generated Code
- Lab 1: Deploying a Web App
Configuring Tomcat
- Tomcat Configuration Techniques
- Tomcat’s Component Architecture
- The <Server> Element
- The <Service> Element
- The <Connector> Element
- The <Engine> Element
- The <Host> Element
- The <Context> Element
- The <Realm> Element
- The <Valve> Element
- The <Listener> Element
- The <Loader> Element
- The <Manager> Element
- The server.xml File
- Lab 2: Modifying server.xml
Deploying Web Applications
- Web Application Administration
- Deploying Web Applications
- The Directory Structure of a Web App
- web.xml configuration file
- Deployment Descriptors
- The <web-app></web-app> Element
- Mapping a Servlet to a URL
- The <resource-ref></resource-ref> Element
- The <env-entry></env-entry> Element
- The <ejb-ref></ejb-ref> Element
- A Sample web.xml file
- Lab 3: Deploying a Web Application
- Tomcat's default conf/web.xml file
- Tuning default JSP and Static-content servlets
The Tomcat Manager
- Deploying and Managing Web Application using the Tomcat Manager
- Starting the Tomcat Manager
- Tomcat Manager
- The Manager Section
- Applications
- Deploy
- Server Information
- Creating a WAR File
- Lab 4: Deploying a WAR File
- Java Management Extensions (JMX) on Tomcat
- Tomcat integration with Ant
Advanced Features
- Using Some of the Advanced Features of Tomcat
- Valves
- Access Log Valve
- Single Sign-on Valve
- Remote Address Filter
- Remote Host Filter
- Request Dumper Valve
- Configuring JNDI Resources
- JNDI: Java Naming and Directory Interface
- Defining a JNDI Resource
- The <environment></environment>Element
- The <resource></resource>Element
- Configuring a JavaMail Session
- Global Resources
- Lab 5: Using Valves
JDBC Connectivity
- Configuring Tomcat to Connect to a Database
- Overview of JDBC
- JDBC Drivers
- Connecting to a Database
- Connection Pools
- Download and Install MySQL
- Configure MySQL for Tomcat
- Create a Database in MySQL
- Download and Deploy a JDBC Driver
- Defining a DataSource in Tomcat
- Defining a Data Source Manually
- Modifying the Deployment Descriptor
- Detecting and closing leaked database connections
- Lab 6: JDBC Connections
Tomcat Security
- Configuring Security on Tomcat
- Security Considerations
- File System Security
- Filesystem Recommendations
- The Java Security Manager
- Granting Permissions to Java Apps
- Java Permissions
- Adding Your Own Policies
- Enabling the Java Security Manager
- Security Manager Tips
- Security Realms
- Different Types of Realms
- Configuring a Realm
- Users and Roles (authentication and authorization)
- Creating a Data Source Realm
- Protecting passwords
- FORM-based authentication
- Configuring Tomcat for SSL
- Requiring SSL in applications
- Lab 7: Create a Data Source Realm
Connectors
- Connecting Tomcat to Apache
- Overview of Connectors
- HTTP Connectors
- Advantages of Using a Web Server
- Connector Protocols
- Step 1: Configure an AJP Connector
- Step 2: Download mod_jk
- Step 3: Create the mod_jk.conf file
- Step 4: Start Tomcat
- Step 5: Create a Worker
- Step 6: Configure httpd.conf
- Test the Setup
- Load balancing applications across multiple Tomcat instances
- Issues with load balancing
- Server affinity via sticky sessions
- Shared session storage
- Replicated sessions via Tomcat clustering
- Lab: Clustering
Shared Hosting
- Overview of Shared Hosting
- Tomcat Virtual Hosting
- Configure Tomcat to enable virtual hosting as a stand-alone server
- Configure Tomcat to enable virtual hosting using jk2 or webapp.
- Configure Tomcat as Stand-alone
- Configure Tomcat with AJP
- Separate JVM for Each Host
- Lab: virtual hosting
Load Testing
- Using the JMeter Application
- Load Testing with JMeter
- Install JMeter
- Running JMeter
- Creating a Test Plan
- Configure the Thread Group
- Add a Task to the Thread Group
- Configure the HTTP Request
- Add a Report Listener
- Run the Test Plan
- Viewing the Results
Course Testimonials
Thanks! Great class! I learned a lot and look forward to using what I learned next week.
The instructor came prepared. He was extremely knowledgeable.
This was the best class I have ever been to
Instructor was excellent
The course met my expectations and the instructor covered the topic well. I will recommend the class to anyone wanting to learn Tomcat.
The class is very fast paced. The information presented was superb! Sasa is a true expert and had an answer for every question. If you need to know Tomcat and need to know it NOW, this is the class to take! Marc Ferrin DTN Operations Internet Team Leader
This is THE course to take if you need to know more about Tomcat and THE guy to teach this course is Sasa. Awesome guy, well versed and knows his stuff inside and out. Very productive and well learned base to do more with Apache/TC. Thanks Marakana and Sasa for the great time in San Francisco. OH - ask to see the dog... she's the best...
Very patient, great instructor, really knowledgeable. 'Excellent' really aplies to [the instructor]!
The course content was very useful. The material was very well structured and presentation was excellent. The instructor was very knowledgeable. Overall, this is probably the best course I have taken.
It was exactly what we needed.
One of the best classes I have ever had. I will definitely be looking to come back again!
It was definitely a very good learning experience.
Excellent Training!
Nothing to improve. The instructor was very knowledgeable and no question was outside his ability to answer solidly and concise. Very enjoyable.
This class is like participating in a Vulcan mind meld. It is a wealth of information that you can take with you. Highly recommended!
I would highly recommend this class for any one trying to obtain tomcat skill or understand overall Middle ware application server skills. The snippets of development were helpful to understand the overall technology and how it all works together.
Awesome experience. Best training course I've ever attended.
Marakana offered us a comprehensive and knowledgeable view of Tomcat that prepared us to meet the challenges of converting our entire Application Server infrastructure to the low-cost open source solution offered by Tomcat.
This was an excellent course, I was able to put all the TOMCAT bits and pieces together. Will be better able to tune/configure TOMCAT. Thanks Marakana.
Loved the class, great experience!
We may invite the instructor come to our company and teach us.
Loved it! Great info... great instructor!
The instructor was great, well-rounded instructor, has expertise in the Tomcat and Java. This is definitely one of the best technical training course I have taken! I'd recommend this class to other Systems Admin who wants to learn more on Tomcat!
Sasa was an excellent teacher.
This was a very thorough class. I learned much more than I ever expected. Instructor knew the material inside and out and was able to answer all questions completely. The diagram of the server layout alone was worth whatever the class cost is.
The instructor has an excellent amount of knowledge. I wish I had more time to take additional classes and ask questions for fulfilling my expertise in other disciplines like apache, java, mysql, etc.
Instructor is well informed with the ideal set on figuring out things for yourself and if you really get stuck he can easily help you out in more detail.
The instructor took time out to help me address some issues that we have been having on a new Tomcat implementation, so major Kudos to the instructor.
The breath and depth of the instructor's experience and knowlege was phenominal. The course was a great experience.
This course gave me a very clear understanding about setting up Tomcat, deploying applications and setting the security. I learnt the JDBC aspect of the Tomcat and I really benefitted from this training as a developer
