When developing backend systems, you’ll often encounter terms like Tomcat, JEUS, WAS, and Servlet Container.
At first, it can be confusing — “What exactly does each one do?”
This post organizes those concepts in one place and explains, step by step, what actually happens when a client sends an API request.
1️⃣ What is a Web Server?
A web server is, quite literally, a server that receives HTTP requests and returns static files (HTML, CSS, JS, images, etc.).
Typical examples are Nginx and Apache HTTP Server.
A web server simply receives the request → locates the file → returns the response.
It does not execute code or communicate with a database.
2️⃣ What is a WAS (Web Application Server)?
A WAS is one step more advanced than a web server.
It receives web requests and executes Java code (Servlets, JSP, Spring, etc.) to generate dynamic results.
In simple terms, it’s a combination of a Web Server + Java Executor (Servlet Container).
It handles business logic, communicates with the database, and returns JSON or HTML responses.
➕ Common WAS examples:
- Tomcat (lightweight, Servlet-only WAS)
- JEUS, WebLogic, WebSphere (enterprise-grade full-stack WAS)
3️⃣ What Does Tomcat Do?
Tomcat is a Servlet Container.
That means it handles only the part of a WAS responsible for executing servlets — a lightweight version of a full WAS.
When a request comes in, Tomcat finds the appropriate servlet class, executes it, and produces a response such as HTML or JSON.
That’s why, when you run a Spring Boot project, Tomcat automatically opens a port like http://localhost:8080.
Tomcat is lightweight and fast, but lacks features found in larger WASs like EJB, JMS, or advanced transaction managers.
So you can think of it as a simplified WAS that provides only the servlet execution part.
4️⃣ What Does JEUS Do?
JEUS is a full-fledged WAS developed by TmaxSoft in Korea.
It’s much more comprehensive than Tomcat and includes features such as:
- Servlet/JSP execution (includes Tomcat-like functionality)
- Enterprise features like EJB, JTA, and JMS
- Transaction and session clustering
- Security, monitoring, and deployment management
In short, JEUS is a complete system combining a web server, servlet container, and enterprise service management features.
5️⃣ What is a Servlet Container?
A Servlet Container is the module that executes servlets and manages their lifecycle.
A servlet is simply a Java class that handles web requests and responses.
The container receives a request, finds the right servlet instance, executes it, and cleans it up afterward.
In short, Tomcat itself acts as a Servlet Container ☕️
6️⃣ What Happens When a Client Calls an API? 🔍
Let’s go through the actual process step by step:
Step 1 – Client Request
A browser or app sends a request like https://myserver.com/api/login.
Step 2 – Web Server (Gateway) Receives It
The request first reaches a web server such as Nginx, Apache, or a JEUS gateway Tomcat.
If it’s a static file, the web server responds immediately. If it’s a dynamic request, it forwards it to the WAS.
Step 3 – Forward to the WAS
The web (gateway) server forwards the request to the internal WAS.
This is also where headers, IPs, or tokens can be validated.
Step 4 – Servlet Container Execution
Tomcat (or the Tomcat module inside JEUS) analyzes the request URL and executes the corresponding servlet (e.g. Spring’s DispatcherServlet).
Step 5 – Business Logic Execution
The request flows through Servlet → Controller → Service → Repository → Database, where the server executes logic and generates a JSON or HTML response.
Step 6 – Response
Tomcat sends the generated response back to the client as an HTTP Response.
In short, a client’s request flows through Web Server → WAS → Servlet Container → Code → Response.
7️⃣ Overall Architecture
[Client]
↓
[Web Server or Gateway]
↓
[WAS (JEUS, Tomcat)]
└── [Servlet Container]
└── DispatcherServlet → Controller → Service → Repository → DB
To summarize 👇
- Web Server → Handles incoming requests and static files
- WAS → Executes Java code and connects to the DB
- Servlet Container → Runs servlets inside the WAS
- Tomcat → Lightweight WAS focusing on servlet execution
- JEUS → Enterprise-level integrated Web + WAS system
Conclusion ✨
Tomcat and JEUS belong to the same family of technologies, but their purpose and scale are different.
Tomcat is a lightweight servlet execution server, while JEUS is a full enterprise-grade WAS.
If you can visualize the flow (Client → Web Server → WAS → Servlet → Response), you’ll have a solid understanding of how modern web applications work