JavaServer Pages (JSP) is a Java technology that allows software developers to dynamically generate HTML, XML or other types of documents in response to a Web client request. The technology allows Java code and certain pre-defined actions to be embedded into static content.
The JSP syntax adds additional XML-like tags, called JSP actions, to be used to invoke built-in functionality. Additionally, the technology allows for the creation of JSP tag libraries that act as extensions to the standard HTML or XML tags. Tag libraries provide a platform independent way of extending the capabilities of a Web server.
JSPs are compiled into Java Servlets by a JSP compiler. A JSP compiler may generate a servlet in Java code that is then compiled by the Java compiler, or it may generate byte code for the servlet directly.
Java is an object-oriented programming language developed by Sun Microsystems in the early 1990s. Java applications are, in the official implementation, compiled to bytecode, which is compiled to native machine code at runtime. Sun Microsystems provides a GNU General Public License implementation of a Java compiler and Java virtual machine, in compliance with the specifications of the Java Community Process.
The language itself borrows much syntax from C and C++ but has a simpler object model and fewer low-level facilities. JavaScript, a scripting language, shares a similar name and has similar syntax, but is not related to Java.
An applet is a software component that runs in the context of another program, for example a web browser. An applet usually performs a very narrow function that has no independent use. Hence, it is an application -let. The term was introduced in AppleScript in 1993. An applet is distinguished from "subroutine" by several features. First, it executes only on the "client" platform environment of a system, as contrasted from "servlet." As such, an applet provides functionality or performance beyond the default capabilities of its container (the browser). Also, in contrast with a subroutine, certain capabilities are restricted by the container. An applet is written in a language that is different from the scripting or HTML language which invokes it. The applet is written in a compiled language, while the scripting language of the container is an interpreted language, hence the greater performance or functionality of the applet. Unlike a "subroutine," a complete web component can be implemented as an applet.
The Java Servlet API allows a software developer to add dynamic content to a Web server using the Java platform. The generated content is commonly HTML, but may be other data such as XML. Servlets with JavaServer Pages are the Java counterpart to dynamic web content technologies such as CGI/PHP or ASP.NET/VBScript,JScript,C#. Servlets can maintain state across many server transactions by using HTTP cookies, session variables or URL rewriting.
hope it helps...