Need advice about which tool to choose?Ask the StackShare community!

Apache Struts

57
58
+ 1
0
Apache Tomcat

16.5K
12.2K
+ 1
201
Add tool

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.

Decisions about Apache Struts and Apache Tomcat

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.

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Apache Struts
Pros of Apache Tomcat
    Be the first to leave a pro
    • 79
      Easy
    • 72
      Java
    • 49
      Popular
    • 1
      Spring web

    Sign up to add or upvote prosMake informed product decisions

    Cons of Apache Struts
    Cons of Apache Tomcat
      Be the first to leave a con
      • 2
        Blocking - each http request block a thread
      • 1
        Easy to set up

      Sign up to add or upvote consMake informed product decisions

      What is Apache Struts?

      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.

      What is Apache Tomcat?

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

      Need advice about which tool to choose?Ask the StackShare community!

      What companies use Apache Struts?
      What companies use Apache Tomcat?
      See which teams inside your own company are using Apache Struts or Apache Tomcat.
      Sign up for StackShare EnterpriseLearn More

      Sign up to get full access to all the companiesMake informed product decisions

      What tools integrate with Apache Struts?
      What tools integrate with Apache Tomcat?

      Sign up to get full access to all the tool integrationsMake informed product decisions

      Blog Posts

      What are some alternatives to Apache Struts and Apache Tomcat?
      Spring MVC
      A Java framework that follows the Model-View-Controller design pattern and provides an elegant solution to use MVC in spring framework by the help of DispatcherServlet.
      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.
      Spring Boot
      Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.
      AngularJS
      AngularJS lets you write client-side web applications as if you had a smarter browser. It lets you use good old HTML (or HAML, Jade and friends!) as your template language and lets you extend HTML’s syntax to express your application’s components clearly and succinctly. It automatically synchronizes data from your UI (view) with your JavaScript objects (model) through 2-way data binding.
      JBoss
      An application platform for hosting your apps that provides an innovative modular, cloud-ready architecture, powerful management and automation, and world class developer productivity.
      See all alternatives