A Java application runs on the client machine 'inside' a JVM. An Applet is a Java program which runs in a browser inside an 'Applet container', ie something designed to contain an Applet. A Servlet is a Java program which runs on a server inside a 'Servlet container', ie something designed to contain an Servlet.
Wow, that is a pretty broad question that could potentially generate a lot of answers.
Servlets play a similar role that CGI programs did back in the "old" days of the web. They provide dynamic content and "just in time" web pages. However, servlets can be much more than just a helper app. I would recommend googling for Servlet Tutorial" or checking out Head First Servlets & JSP for a thorough introduction. [ November 18, 2005: Message edited by: Paul Bourdeaux ]
“Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.” - Rich Cook