The LAMP Stack is fairly easy to understand:
- L is for Linux which is an Operating System a server is run on.
- A is for Apache which is a Server that accepts and processes HTTP requests.
- M is for MySQL which is a database used to store any data the web server will be CRUD-ing.
- P is for PHP which is a scripting language used to produce web pages dynamically.
Anyone who has used the LAMP stack knows how easy it is to work with. For example, to change some part of the website you can open a text editor, change a PHP file and then save the file on the server. The next time a HTTP request is processed by the Apache server the new PHP change will be picked up.
In the J2EE world, things are a little different. A server stack using J2EE otherwise known as Java Enterprise Edition can also use Linux and MySQL. The major difference in the setup when compared to the LAMP stack is that Apache is replaced by a J2EE Implementation of the Servlet Specification commonly known as a “Web Container“. A Web Container then handles HTTP requests and routes them to an appropriate Servlet. A Servlet is a Java program that adheres to the Java Servlet interface and provides custom behaviour that allows dynamic content to be produced by the web server (as opposed to static content). Essentially the Java Servlet provides the same functionality as PHP would in the LAMP stack.