Servlet architecture overview
A web application or website is an application program which accessed over a network connection using HTTP and often runs inside a web browser.
A web browser is a program which is act as an interface between user and web application e.g. Internet Explorer, Chrome, Safari, Mozilla firefox etc.
CGI (Common gateway interface):
CGI was the first protocol or way of communication between web server and program. It passes a request from a web user to an application program and receives data back to forward to the web user i.e. It is responsible for dynamic content generation.
Advantages of CGI:
- 1. Technology portability: CGI programming can be written in variety of languages like c, c++, perl.
- 2. Web server portability: All service providers support CGI Programs.
- 1. Response time is high.
- 2. CGI scripts are platform-dependent.
- 3. For every request, a new process will be started and web server is limited to start processes.
- 4. CGI programs are not object oriented always.
Servlet overcomes the above disadvantages.
Servlet as technology:
As a technology servlet provides a model of communication between a web user request and the application or program on the web server.
Servlet as component:
As a component servlet is a program which is executed in web server and responsible for dynamic content generation.
Main tasks of servlet:
- 1. Read the implicit and explicit data sent by web browser.
- 2. Generate result by processing the data.
- 3. Send the implicit and explicit data as a response to the web browser.
javax.servlet and javax.servlet.http packages contains the classes and interfaces for servlet API. These packages are the standard part of Java’s enterprise edition.
javax.servlet contains a number of classes and interfaces which are mainly used by servlet container.
javax.servlet.http contains a number of classes and interfaces which are mainly used by http protocol.
Differences between CGI and Servlet.
- 1. CGI is process based. For every request a new process will be started.
- 2. Concurrency problems can’t occur in CGI because it is process based.
- 3. Platform dependent.
- 4. Can be written in variety of languages like c, c++, perl.
- 5. Response time is high.
- 1. Servlet is thread based. For every request a new thread will be started.
- 2. Concurrency problems can occur in servlet because it is thread based.
- 3. Platform independent.
- 4. Can be written only in java.
- 5. Response time is low.