Servlet tutorial provides basic and advanced ideas of CoreJava and Html. Our Servlet tutorial is designed for beginners and professionals.
Servlet technology is used to create web application (resides at server side and generates dynamic web page).
A Java servlet is a Java program that broadens the capacities of a server. Despite the fact that servlets can react to any sorts of solicitations, they most normally execute applications facilitated on Web servers. Such Web servlets are the Java partner to other element Web content technologies , for example, PHP and ASP.NET.
Before learning Servlet, you must have the fundamental information of Core Java.
Our Servlet tutorial is designed to help beginners and professionals.
We assure that you will not find any mistake in this Servlet tutorial. But if there is any mistake, please post the problem by mail.
The term Servlet has two different meaning in two different contexts. In the broader context, it represents an API of dynamic web application development and in the narrow context, it represent a Java class which is defined using this API for processing requests in a web application.
As API, Servlet contains interfaces and classes which are used to create web applications in Java. Implementation of some of the these interfaces is provided by the web server vendors and implementation of the rest is provided by the application programmers. These interfaces define a standard mode of communication between the server and the Servlets (request processing programs). To understand the need of such interfaces, we need to understand how a request for dynamic contents is processed by the server.
A request for dynamic contents has following work flow:
i.e. A web server and a request processing program need to collaborate with each other in the processing of a request. For this collaboration there must be some standard rules of communication b/w the server and the program. Before Servlet these rules were provided by CGI. You must have heard this term before? No! don't worry, lets find out what it is?
The basic of servlet is to develop web applications. Servlets specification developed by SUN and released to the industry. Lot of server vendors came forward for implementing these specifications of servlets.
Servlets are nothing but set of rules given by SUN in the form of Interfaces. The server vendors have developed their own classes by implementing the interfaces developed by SUN.
A servlet is a server side platform independent, dynamic and multithread java program, which runs in the context of server for extending the functionality of server. When multiple users make a request to the same servlet then all requests will be processed by the container by creating multiple threads for the same servlet.
Common Gateway Interface is a protocol which provides standard rules for servers to invoke programs, to provide request data to them, and to receive processing result from them. In CGI based web applications programs were written in C, C++ or perl. These programs were called CGI Scripts. you would be thinking that when we had CGI, why servlet was introduced?
CGI based web applications had following drawbacks:
To remove these drawbacks of CGI based web applications, Sevlet API was introduced by sun Microsystems in 1998. Now, you will be wondering, how Servlets removes these drawbacks?
The role of the API, is to facilitate communication between a web server and a request processing program (henceforth called Servlet). For this Sun Microsystems defined a set of interfaces, representing standard rules for defining Servlets, instantiating Servlets, processing requests, and transferring data between the server and the servlets etc.
javax.servlet.Servlet is the main interface of the API, it provides methods which define initialization, processing and destruction phase of a Servlet. These methods are called servlet life cycle methods.
Application programmers are told by Sun Microsystems that they need to define classes which implements this interface i.e. application programmer are asked to define methods which are expected by the server.
A web server is told that application programmers will provide Sevlet classes to it as part of an application i.e. the server will need to invoke these methods for request processing.
By providing same information to both the parties Sun Microsystems facilitated communication between the web servers and servlets in a standard manner.
|GET||Asks to get the resource at the requested URL.|
|POST||Asks the server to accept the body info attached. It is like GET request with extra info sent with the request.|
|HEADstrong||Asks for only the header part of whatever a GET would return. Just like GET but with no body.|
|TRACE||Asks for the loopback of the request message, for testing or troubleshooting.|
|PUT||Says to put the enclosed info (the body) at the requested URL.|
|DELETE||Says to delete the resource at the requested URL.|
|OPTIONS||Asks for a list of the HTTP methods to which the thing at the request URL can respond|
Have you ever thought how a request is mapped to doGet() and doPost() methods that we define in our Servlet classes. The Servlet interface which defines the life cycle of servlets provides service() method for request processing.
The server doesn't know doGet() and doPost() methods. It simply invokes service() method whenever a request is received for a servlet. The mapping of service() to doGet() and doPost() is done by HttpServlet class. You may recall that GenericServlet class doesn't define service() method and is extended by HttpServlet class. We extend HttpServlet but don't define service() method and doesn't declare out classes as abstract which implies that the service() method is defined by HttpServlet class.
Actually the HttpSevlet class has two service() methods, one protocol independent that is known to the server and one protocol specific which is not known to the server. These methods have following signature:
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException;
protected void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException;
There are many differences between the Get and Post request.
|1) In case of Get request, only limited amount of data can be sent because data is sent in header.||In case of post request, large amount of data can be sent because data is sent in body.|
|2) Get request is not secured because data is exposed in URL bar.||Post request is secured because data is not exposed in URL bar.|
|3) Get request can be bookmarked||Post request cannot be bookmarked|
|4) Get request is idempotent. It means second request will be ignored until response of first request is delivered.||Post request is non-idempotent|
|5) Get request is more efficient and used more than Post||Post request is less efficient and used less than get.|
A "Content-type" is simply a header defined in many protocols, such as HTTP, that makes use of MIME types to specify the nature of the file currently being handled.
MIME stands for "Multipurpose Internet Mail Extensions. It's a way of identifying files on the Internet according to their nature and format. For example, using the "Content-type" header value defined in a HTTP response, the browser can open the file with the proper extension/plugin.
It depends on the programming language you are using. Note that most language have a default "Content-type" of "text/html".