SERVLET ?
A servlet is a module that services requests from webserver.Because it runs on the server side, it does not depend on browser compatibility. Servlets are server extensions and provide extra functionality to the main server. This could includes implementation of specialized services such as authenticatioin, authorization, database validation, and transaction management. Servlets acts as controller components that control the business logic. The code that access the database, validates the password, and authenticates the user should be in Servlet. Business logic is deffered to servlet.
Java Server pages are extensions of Java servlet.  they are similar structure to HTML design time. You should have basic knowledge of JSP tags and basic java. The code that generates the
HTML FORMS, success and error messages, etc should be handled by JSP. JSP pages are meant for visual presentation.
Servlets are generic extensions to Java enabled server.The two main classes are GenericServlet and HttpServlet classes.
HttpSevlet class is extended from Genericservlet.
For Web applications you will be wxtending Httpservlet.
Since java servlets do not have a main() method, they must implement  javax.servlet.Servlet interface.
      Genricservlet
service()

  web
server
Request
      HttpServlet
  doDelete()
  doGet()
  doOptions()
  doPost()
  doPut
  doTrace()
Response
CLIENT
APPLICATIONS ?
.Developing e-commerce application, It can create dynamic web pages using HTML.
.Servlets can be used to open up large legacy systems on the Internet. Inexpensive      web interfaces can talk to the main frame systems with the help of Web server(JDK).
.Developing a distributed object application on the Web. If servelets are employed,       you can tunnel through the firewall using a servlet technology called HTTPTunneling.
Life Cycle ?
The Life cycle of a java servlet is very simple Object-Oriented design.
 
Constructed&Initializes - Servises 0-N requests - Destroyed&Garbage collected.
These methods are init(), service(), and destroy().
Init() - is called(only once)  by the server immediately after servlet in instantiated.
It initializes any resources including data members, that will be used during request handling
   
Signature :- public void init(ServletConfig config) throws servletException;
Service() - It handles all the requests sent by a client. It starts only after executing of init().
The most common implementation of the service() method is in the Httpservlet class..

   Signature :- public void service(Servletrequest req, ServlwtResponse res) throws
                     servletException, IOexception;

destroy() -
when a service is being shut down, it calls the destroy() method. Any resources created by init() method will be cleaned up.
   
Signature :- public void destroy();
For JSP and Java Servlet example.