StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Follow on

© 2025 StackShare. All rights reserved.

Product

  • Stacks
  • Tools
  • Feed

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  1. Stackups
  2. Application & Data
  3. Platform as a Service
  4. Web Servers
  5. Apache Struts vs Apache Tomcat

Apache Struts vs Apache Tomcat

OverviewDecisionsComparisonAlternatives

Overview

Apache Tomcat
Apache Tomcat
Stacks16.9K
Followers12.6K
Votes201
GitHub Stars8.0K
Forks5.3K
Apache Struts
Apache Struts
Stacks61
Followers57
Votes0
GitHub Stars1.3K
Forks833

Apache Struts vs Apache Tomcat: What are the differences?

Introduction Apache Struts and Apache Tomcat are both popular open-source web application frameworks used for developing Java applications. While they have similarities, they also have key differences that set them apart.

1. Application Type: Apache Struts is a comprehensive Model-View-Controller (MVC) framework that provides a structure for developing enterprise-level Java web applications. It focuses on managing the application's flow and handles request processing, data validation, and form handling. On the other hand, Apache Tomcat is a pure servlet container that provides a runtime environment for executing Java Servlets and JavaServer Pages (JSPs) but does not provide a complete MVC framework.

2. Functionality: Apache Struts offers several built-in components and features that simplify the development process, including tag libraries, form validation, and built-in support for internationalization. It provides support for managing complex business logic and automating common tasks. In contrast, Apache Tomcat mainly focuses on serving servlets and JSPs and does not offer the same level of built-in functionality as Apache Struts.

3. Ease of Use: Apache Struts provides a more structured and opinionated approach to application development, which may be beneficial for large-scale projects with complex requirements. However, this structure can also make it more challenging for beginners to learn and use. On the other hand, Apache Tomcat is relatively easier to set up and use, making it more suitable for simple applications or projects where flexibility is crucial.

4. Community and Support: Apache Struts has a larger and more mature community compared to Apache Tomcat. It has been around for a longer time and has a wide range of resources, documentation, and third-party libraries available. This rich community ensures continuous improvement, updates, and support for the framework. In contrast, while Apache Tomcat also has a strong community, it may not have the same level of resources and support as Apache Struts.

5. Security: Apache Struts has had a history of security vulnerabilities, including high-profile incidents such as the Equifax data breach in 2017. However, the community has been actively addressing these issues, and newer versions have implemented significant security enhancements. Apache Tomcat, on the other hand, is widely known for its robust security features and undergoes regular updates, making it a secure choice for hosting servlets and JSPs.

6. Extensibility: Apache Struts offers a higher level of extensibility, allowing developers to customize and extend the framework's functionality to fit their specific needs. It provides various extension points, making it more suitable for complex enterprise applications. On the other hand, Apache Tomcat, being a servlet container, has a more limited scope for customization but still supports certain extensions and plugins.

In Summary, Apache Struts is a comprehensive MVC framework for enterprise-level web applications, while Apache Tomcat is a servlet container focused on serving servlets and JSPs. Struts offers built-in components, extensive functionality, and extensibility, but requires a steeper learning curve. Tomcat is easier to set up and use, has a strong security reputation, and is suitable for simpler applications or projects requiring flexibility.

Share your Stack

Help developers discover the tools you use. Get visibility for your team's tech choices and contribute to the community's knowledge.

View Docs
CLI (Node.js)
or
Manual

Advice on Apache Tomcat, Apache Struts

Hari
Hari

Mar 3, 2020

Needs advice

I was in a situation where I have to configure 40 RHEL servers 20 each for Apache HTTP Server and Tomcat server. My task was to

  1. configure LVM with required logical volumes, format and mount for HTTP and Tomcat servers accordingly.
  2. Install apache and tomcat.
  3. Generate and apply selfsigned certs to http server.
  4. Modify default ports on Tomcat to different ports.
  5. Create users on RHEL for application support team.
  6. other administrative tasks like, start, stop and restart HTTP and Tomcat services.

I have utilized the power of ansible for all these tasks, which made it easy and manageable.

419k views419k
Comments

Detailed Comparison

Apache Tomcat
Apache Tomcat
Apache Struts
Apache Struts

Apache Tomcat powers numerous large-scale, mission-critical web applications across a diverse range of industries and organizations.

It is a free, open-source, MVC framework for creating elegant, modern Java web applications. It favors convention over configuration, is extensible using a plugin architecture, and ships with plugins to support REST, AJAX and JSON.

-
MVC framework; extensible using a plugin architecture; ships with plugins to support REST, AJAX and JSON
Statistics
GitHub Stars
8.0K
GitHub Stars
1.3K
GitHub Forks
5.3K
GitHub Forks
833
Stacks
16.9K
Stacks
61
Followers
12.6K
Followers
57
Votes
201
Votes
0
Pros & Cons
Pros
  • 79
    Easy
  • 72
    Java
  • 49
    Popular
  • 1
    Spring web
Cons
  • 3
    Blocking - each http request block a thread
  • 2
    Easy to set up
No community feedback yet
Integrations
No integrations available
AngularJS
AngularJS
Java
Java
Hibernate
Hibernate

What are some alternatives to Apache Tomcat, Apache Struts?

Node.js

Node.js

Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

NGINX

NGINX

nginx [engine x] is an HTTP and reverse proxy server, as well as a mail proxy server, written by Igor Sysoev. According to Netcraft nginx served or proxied 30.46% of the top million busiest sites in Jan 2018.

Rails

Rails

Rails is a web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern.

Django

Django

Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.

Laravel

Laravel

It is a web application framework with expressive, elegant syntax. It attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as authentication, routing, sessions, and caching.

.NET

.NET

.NET is a general purpose development platform. With .NET, you can use multiple languages, editors, and libraries to build native applications for web, mobile, desktop, gaming, and IoT for Windows, macOS, Linux, Android, and more.

ASP.NET Core

ASP.NET Core

A free and open-source web framework, and higher performance than ASP.NET, developed by Microsoft and the community. It is a modular framework that runs on both the full .NET Framework, on Windows, and the cross-platform .NET Core.

Apache HTTP Server

Apache HTTP Server

The Apache HTTP Server is a powerful and flexible HTTP/1.1 compliant web server. Originally designed as a replacement for the NCSA HTTP Server, it has grown to be the most popular web server on the Internet.

Symfony

Symfony

It is written with speed and flexibility in mind. It allows developers to build better and easy to maintain websites with PHP..

Spring

Spring

A key element of Spring is infrastructural support at the application level: Spring focuses on the "plumbing" of enterprise applications so that teams can focus on application-level business logic, without unnecessary ties to specific deployment environments.

Related Comparisons

Bootstrap
Materialize

Bootstrap vs Materialize

Laravel
Django

Django vs Laravel vs Node.js

Bootstrap
Foundation

Bootstrap vs Foundation vs Material UI

Node.js
Spring Boot

Node.js vs Spring-Boot

Liquibase
Flyway

Flyway vs Liquibase