JSP : Java Glossary

JSP
JSP (Java Server Pages) is a language similar to Microsoft’s ASP (Active Server Page) for creating dynamic web pages. Sun has created a language specification. With JSP, a single source textfile is created containing both HTML (Hypertext Markup Language) (or XML (extensible Markup Language)) tags and Java-like scriptlets. The JSP-aware web server composes, compiles and runs a Servlet from the source text. For increased efficiency, the JSP-aware server will typically cache the compiled Servlets. The compiled form are perfectly ordinary Servlets, and thus can be mixed in with ordinary Servlets.

Part of the magic of JSP is that you can replace JSP source code on the fly while the server is active. The next time a request comes for that JSP code, will be automatically recompiled. You don’t have to shut down the server ever time you change the text or JSP markup of a page. This works because of clever use of classloaders to see that obsolete classes are garbage collected. Normally, you use this feature only for testing. You normally don’t update your code while a production server is running.

Multiple Languages Gotchas
HelloJspWorld.jsp advantages
Tags Disadvantages
Two Types of Include Books
Potential of JSP Learning More
Alternatives To JSP Links

Multiple Languages

To master JSP, you need to master several languages:

Hello.jsp

Here is a the JSP equivalent of the HelloWorld program.

See servlet for instructions on how to install and run it. The Servlet womb will automatically convert the *.jsp to *.java and compile it to a

Note how it looks like ordinary HTML with dynamically generated variable content Java code enclosed in <%=… %>. Inside those delimiters is a Java expression, called a scriptlet, that when evaluated will produce a String to insert at that point in the HTML file. Have a look at how various JSP files expand into Java source code to generate and glue the various bits of text together. In addition there are other things called tags you can embed with many different syntaxes. Unfortunately, the documentation on how to use them reads like the ramblings of someone with ADD. They keep wandering off on tangents before they have explained the core functionality. Further they scrupulously avoid using examples to explain the abstract gibberish. This is ad hoc language creation at its worst.

By default the Servlet generated is thread-safe so the same code can process several requests simultaneously. Alternatively, you can declare your code with <%@ page isThreadSafe="false" %> so that your Servlet will only be used to process one message at a time.

Note that the <%=%> delimiters used by JSP are not legitimate HTML. They must be expanded and removed before feeding the page to a browser. (In contrast, static macro markup are legitimate HTML even before expansion and are not removed on expansion.)

There are many different sorts of beast you embed in your HTML. Among them are the following tags:

In that last example, the <tr is just an ordinary table row command, nothing to do with JSP. The JSP part is the ${…}

Tags

A *.jsp file generates an entire page of HTML. Tags generate just a snippet of boilerplate to include in a page. They can have both mandatory and optional parameters, but I have not yet learned how to handle a variable number of parameters. Tags are like macros in other languages. You implement the tag by writing a class that extends javax.servlet.jsp.tagext.TagSupport. The Javadoc is inscrutable. You will have to figure out what it means from examples and web tutorials. You also have to write a *.tld TLD (Top Level Domain) file, containing XML to describe the names of the tags, the parameters and the name of the class to process the tag.

There are a number of general purpose tag libraries (taglibs) available on the net that you can access simply by giving the URL (Uniform Resource Locator) of their *.tld files.

Here

You can have one-liner bodyless tags or begin-end tags enclosing a body. The body is like a large parameter, often of text to format. The syntax is borrowed from XML.

You must enclose parameters in either " or '. If the attribute value itself contains "s, you must enclose the parameter value in '. If the attribute value itself contains 's, you must enclose it in ". What do you do if a string contains both " and '? You must use the entity &quot; for embedded " and surround the string in "s, e. g.:
<mytag:album title="Sargeant Pepper’s Lonely Hearts Club Band">
<mytag:album title='"The Wall"'>
<mytag:album title="Peter’s &quot;Weird Songs&quot;">

Two Types of Include

<jsp:include> is a dynamic, runtime/request time include. It invokes another class to produce a page and includes that result embedded in the page output.

<%@ include> is a macro-style, in-line, translation/compile time include that inserts some JSP/HTML source code into the current JSP program.

Potential of JSP

I don’t think websites have even begun to exploit the power of JSP yet. Here are some things you potentially could do with it:

Alternatives To JSP

There are two basic alternatives to JSP :
  1. Ones that also rely 100% on server side computing, such as Velocity, Tea and Freemarker and other frameworks. There are scores of lemmings all going for the fundamentally flawed, but easy to implement, 100% server side solution. You can see a list of them under servlet wombs.
  2. Ones that use a combination of server side and client side computing such as Canoo. Flash is about the only mainstream alternative, (unfortunately non-Java), for the combined solution. I have written up a JSP Replacer student project for an all-Java server-controlled client-side validation environment.

Gotchas

Advantages

Disadvantages

I am not the only one who thinks JSP is not the greatest thing since sliced bread. Check out these essays:

Outstanding Questions

Books

book cover recommend book⇒Head First Servlets and JSP: Passing the Sun Certified Web Component Developer Exam
by:Bryan Basham, Kathy Sierra, Bert Bates 978-0-596-51668-0paperback
publisher:O’Reilly recommended
published:2008-08-07
A very complete book, partly because it aims to prepare you for the Sun exam. It is also a difficult book.
Australian flag abe books anz abe books.co.uk UK flag
German flag abe books.de amazon.co.uk UK flag
German flag amazon.de abe books.ca Canadian flag
Spanish flag iberlibro.com amazon.ca Canadian flag
Spanish flag amazon.es Chapters Indigo Canadian flag
French flag abe books.fr abe books.com American flag
French flag amazon.fr amazon.com American flag
Italian flag abe books.it Barnes & Noble American flag
Italian flag amazon.it Powells American flag
American flag download O’Reilly Safari Sony e-books American flag
Kobo UN flag
Greyed out stores probably do not have the item in stock
book cover recommend book⇒Core Web Programming, second edition
by:Marty Hall and Gary Cornell 978-0-13-089793-0paperback
publisher:Prentice Hall 978-0-613-92274-6hardcover
published:2001-06-03
1250 pages. Also has some simple RMI examples. This is a great doorstop of a book. It has a few chapters on client-server programming in Java, and a section of that is on CGI. I have looked at hundreds of Java books and found nothing that deals in depth with client side Java talking to CGI, except Marty’s book. It is really very simple and he does an excellent job of explaining it. Marty has posted all the source code examples from the book for anyone to use. These contain updates and errata fixes you don’t get on the CD-ROM that comes with the book.
Australian flag abe books anz abe books.co.uk UK flag
German flag abe books.de amazon.co.uk UK flag
German flag amazon.de abe books.ca Canadian flag
Spanish flag iberlibro.com amazon.ca Canadian flag
Spanish flag amazon.es Chapters Indigo Canadian flag
French flag abe books.fr abe books.com American flag
French flag amazon.fr amazon.com American flag
Italian flag abe books.it Barnes & Noble American flag
Italian flag amazon.it Powells American flag
American flag download O’Reilly Safari Sony e-books American flag
Kobo UN flag
Greyed out stores probably do not have the item in stock
book cover recommend book⇒Core Servlets and Javaserver Pages: Advanced Technologies, Vol. 2, second edition
by:Marty Hall, Larry Brown, Yaakov Chaikin 978-0-13-148260-9paperback
publisher:Prentice Hall B004YWAZFAkindle
published:2007-12-01
Complete text of the book available on line in pdf format.
Australian flag abe books anz abe books.co.uk UK flag
German flag abe books.de amazon.co.uk UK flag
German flag amazon.de abe books.ca Canadian flag
Spanish flag iberlibro.com amazon.ca Canadian flag
Spanish flag amazon.es Chapters Indigo Canadian flag
French flag abe books.fr abe books.com American flag
French flag amazon.fr amazon.com American flag
Italian flag abe books.it Barnes & Noble American flag
Italian flag amazon.it Powells American flag
American flag download O’Reilly Safari download Sony e-books American flag
Kobo UN flag
Greyed out stores probably do not have the item in stock
book cover recommend book⇒More Servlets and Java Server Pages
by:Marty Hall 978-0-13-067614-6paperback
publisher:Pearson Education
published:2001-12-26
Complete text of the book available on line in pdf format.
Australian flag abe books anz abe books.co.uk UK flag
German flag abe books.de amazon.co.uk UK flag
German flag amazon.de abe books.ca Canadian flag
Spanish flag iberlibro.com amazon.ca Canadian flag
Spanish flag amazon.es Chapters Indigo Canadian flag
French flag abe books.fr abe books.com American flag
French flag amazon.fr amazon.com American flag
Italian flag abe books.it Barnes & Noble American flag
Italian flag amazon.it Powells American flag
American flag download O’Reilly Safari Sony e-books American flag
Kobo UN flag
Greyed out stores probably do not have the item in stock
book cover recommend book⇒Web Development with JavaServer Pages
by:Duane K. Fields, Mark A. Kolb, Shawn Bayern 978-1-930110-12-0paperback
publisher:Manning
published:2001-09-15
A very thorough treatment.
Australian flag abe books anz abe books.co.uk UK flag
German flag abe books.de amazon.co.uk UK flag
German flag amazon.de abe books.ca Canadian flag
Spanish flag iberlibro.com amazon.ca Canadian flag
Spanish flag amazon.es Chapters Indigo Canadian flag
French flag abe books.fr abe books.com American flag
French flag amazon.fr amazon.com American flag
Italian flag abe books.it Barnes & Noble American flag
Italian flag amazon.it Powells American flag
American flag O’Reilly Safari Sony e-books American flag
Kobo UN flag
Greyed out stores probably do not have the item in stock
book cover recommend book⇒Java Servlet Programming, second edition
by:Jason Hunter, William Crawford 978-0-596-00040-0paperback
publisher:O’Reilly recommended B0043M4Z8Ekindle
published:2001-03-01
highly recommended. Covers basics of JSP too.
Australian flag abe books anz abe books.co.uk UK flag
German flag abe books.de amazon.co.uk UK flag
German flag amazon.de abe books.ca Canadian flag
Spanish flag iberlibro.com amazon.ca Canadian flag
Spanish flag amazon.es Chapters Indigo Canadian flag
French flag abe books.fr abe books.com American flag
French flag amazon.fr amazon.com American flag
Italian flag abe books.it Barnes & Noble American flag
Italian flag amazon.it Powells American flag
American flag download O’Reilly Safari Sony e-books American flag
Kobo UN flag
Greyed out stores probably do not have the item in stock
book cover recommend book⇒Murach’s Java Servlets and JSP, second edition
by:Joel Murach and Andrea Steelman 978-1-890774-44-8paperback
publisher:Mike Murach
published:2008-01-21
Presumes Tomcat and Netbeans. That is a disadvantage if you use other tools but a boon if you use them, since so many problems are about the details of configuring and implementation, not the code itself.
Australian flag abe books anz abe books.co.uk UK flag
German flag abe books.de amazon.co.uk UK flag
German flag amazon.de abe books.ca Canadian flag
Spanish flag iberlibro.com amazon.ca Canadian flag
Spanish flag amazon.es Chapters Indigo Canadian flag
French flag abe books.fr abe books.com American flag
French flag amazon.fr amazon.com American flag
Italian flag abe books.it Barnes & Noble American flag
Italian flag amazon.it Powells American flag
American flag O’Reilly Safari Sony e-books American flag
Kobo UN flag
Greyed out stores probably do not have the item in stock
book cover recommend book⇒Java 2 Bible
by:Justin Couch and Daniel H. Steinberg 978-0-7645-0882-0paperback
publisher:Wiley
published:2002-04-01
Australian flag abe books anz abe books.co.uk UK flag
German flag abe books.de amazon.co.uk UK flag
German flag amazon.de abe books.ca Canadian flag
Spanish flag iberlibro.com amazon.ca Canadian flag
Spanish flag amazon.es Chapters Indigo Canadian flag
French flag abe books.fr abe books.com American flag
French flag amazon.fr amazon.com American flag
Italian flag abe books.it Barnes & Noble American flag
Italian flag amazon.it Powells American flag
American flag O’Reilly Safari Sony e-books American flag
Kobo UN flag
Greyed out stores probably do not have the item in stock
book cover recommend book⇒Pure JSP: Java Server Pages
by:James Goodwill 978-0-672-31902-0paperback
publisher:Sams
published:2000-06-08
I would not recommend this book. It seems as it were constructed by copy/paste from the spec. It tries to explain things abstractly without even explaining the conventions of his BNF notation. It needs to be rewritten replacing the BNF with concrete, realistic examples. Reading this book is likely listening to a politician trying to avoid a question. It does have examples, but beats around the bush needlessly before getting to the point. Does not cover tags or UEL.
Australian flag abe books anz abe books.co.uk UK flag
German flag abe books.de amazon.co.uk UK flag
German flag amazon.de abe books.ca Canadian flag
Spanish flag iberlibro.com amazon.ca Canadian flag
Spanish flag amazon.es Chapters Indigo Canadian flag
French flag abe books.fr abe books.com American flag
French flag amazon.fr amazon.com American flag
Italian flag abe books.it Barnes & Noble American flag
Italian flag amazon.it Powells American flag
American flag download O’Reilly Safari Sony e-books American flag
Kobo UN flag
Greyed out stores probably do not have the item in stock

Learning More


CMP homejump to top You can get the freshest copy of this page from: or possibly from your local J: drive (Java virtual drive/mindprod.com website mirror)
http://mindprod.com/jgloss/jsp.html J:\mindprod\jgloss\jsp.html
logo
Please email your , letters to the editor, errors, omissions, typos, formatting errors, ambiguities, unclear wording, broken/redirected link reports, suggestions to improve this page or comments to Roedy Green : feedback email. If you want your message, your name or email kept confidential, not considered for public posting, please explicitly specify that. Unless you state otherwise, I will treat your message as a letter to the editor that I may or may not publish in the feedback section. After that, it will be too late to retract it. If you disagree with something I said, please quote it and cite the web page where you found it, tell me why you think it is wrong, and, if possible, provide some supporting evidence. Threatening to kill me or spouting obscenities has yet to persuade me to change my mind.
mindprod.com IP:[65.110.21.43]
view BlogYour face IP:[38.107.179.213]
You are visitor number 23,718.