JSP stands for Java Server Pages.  It is a technology that incorporates the Java language within an HTML document. This allows the transfer of data from a browser to a server, and the dynamic creation of web pages.

This technology replaces the old Common Gateway Interface, or CGI, process.  In CGI, submitting an HTML form would trigger an executable program on the server. That program would "read" the values from the form fields.

The process passes information to the server in name=value format, where "name" is the name of the form field, and "value" is the value stored in the field.  A form field can be thought of as a variable.

Because it is Java, it does has all the functionality of Java.  Do not confuse Java code with JavaScript. They are not the same, even though they both have similar syntax.  Java is designed to run as a program, while JavaScript runs in a browser.  Also, each has its own capabilities and limitations that make them different from each other.

Dynamic creation of HTML pages simply means that the file is created "on-the-fly" by the program  it did not exist before.  As opposed to static pages that are created once and placed in the server.  Dynamic pages may have different content each time, static pages are always the same.

JSP code is compiled.  This means that the lines of code are compiled only the first time the page is requested.  As a result, JSP pages tend to be faster.