Java
  Home arrow Java arrow Page 2 - JavaServer Pages
Dev Articles Forums 
ADO.NET  
Apache  
ASP  
ASP.NET  
C#  
C++  
ColdFusion  
COM/COM+  
Delphi-Kylix  
Design Usability  
Development Cycles  
DHTML  
Embedded Tools  
Flash  
Graphic Design  
HTML  
IIS  
Interviews  
Java  
JavaScript  
MySQL  
Oracle  
Photoshop  
PHP  
Reviews  
Ruby-on-Rails  
SQL  
SQL Server  
Style Sheets  
VB.Net  
Visual Basic  
Web Authoring  
Web Services  
Web Standards  
XML  
Dedicated Servers  
Moblin 
JMSL Numerical Library 
IBM® developerWorks 
Sun Developer Network 
Weekly Newsletter
 
Developer Updates  
Free Website Content 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us Get Paid 
Request Media Kit
Contact Us 
Site Map 
Privacy Policy 
Support 
 USERNAME
 
 PASSWORD
 
 
  >>> SIGN UP!  
  Lost Password? 
JAVA

JavaServer Pages
By: Apress Publishing
  • Search For More Articles!
  • Disclaimer
  • Author Terms
  • Rating: 4 stars4 stars4 stars4 stars4 stars / 5
    2005-11-03

    Table of Contents:
  • JavaServer Pages
  • Writing JSP Pages
  • Scriptlets
  • Template Data
  • Try It Out: Deploying the Web Application in J2EE
  • Try It Out: Deploying the Web Application in Tomcat
  • Action Elements

  • Rate this Article: Poor Best 
      ADD THIS ARTICLE TO:
      Del.ici.ous Digg
      Blink Simpy
      Google Spurl
      Y! MyWeb Furl
    Email Me Similar Content When Posted
    Add Developer Shed Article Feed To Your Site
    Email Article To Friend
    Print Version Of Article
    PDF Version Of Article
     
     
    ADVERTISEMENT


    JavaServer Pages - Writing JSP Pages


    (Page 2 of 7 )

    So, now that weve seen how JSP pages work, lets look at what they contain, and how we go about writing them. Take a look at the following line of code:

      <html><body><p>Hello, World!</p></body></html>

    Admittedly, this example is not a very good JSP example. However, these HTML tags do form a correct and valid JSP file. You could save the above file as HelloWorld.jsp, install it into a web application, and the server would access it as a JSP resource. The point I want to make is that JSP pages tend to look a lot like HTML pages. To make these pages dynamic, you can embed special tags and Java code in them. You can think of JSP pages as web pages with little bits of Java embedded in them.

    The reason the example above is not very good is that it isnt dynamic in any way. If your JSP pages dont contain Java code, you might as well just make them static HTML pages. JSP pages are intended to have dynamic behavior; they are supposed to change in response to specific client requests. You give the page dynamic behavior by embedding Java code into the page.

    JSP Elements

    You can't just write Java code wherever you want in the page, though. You need some way to tell the server which bits are code, and which bits are regular HTML. To do this, the JSP specification defines HTML-like or XML tags that enclose the code in the JSP. Those tags come in three categories:

    • Directive elements

       

    • Scripting elements

       

    • Action elements

       

    The original JSP specification used tag formats for these elements that were not compatible with XML; that is, they were not well-formed according to the XML specification. With the JSP 1.2 specification, alternative XML-compliant versions of all the above tags were introduced. You will see both formats in this book, with the original style referred to as JSP style, and the newer as XML style.

    Directive Elements

    Directive elements provide information to the JSP container about the page. There are three directives available: page, include, and taglib. We will look at page and include here, deferring discussion of taglib to the next chapter. The page and include directives have these forms:

    JSP Style

    XML

    <%@ page attributes %>

    <jsp:directive.page attributes />

    <%@ include attributes %>

    <jsp:directive.include attributes />

    You can find the complete list of attributes and their meanings in the JSP specification, which you can download at http://java.sun.com/products/jsp. Shown below are the attributes you are most likely to be using as you start developing JSP pages:

     

    Directive

    Attribute

    Description

    Page

    import

    Lists the Java packages to be imported into the page. Just as

     

     

    with a Java source file, the Java code embedded in a JSP

     

     

    page must import the packages of the classes used with the

     

     

    code. Multiple package statements are delimited by

     

     

    commas, for example import="java.io.*,java.util.*".

     

    session

    The valid values are "true" or "false". The default value

     

     

    is "true". If "true", the page participates in a session; if

     

     

    "false", then it does not, and cannot access any session

     

     

    information. Sessions are covered later in the chapter.

     

    isThreadSafe

    Whether the page is thread-safe or not. If "true", the

     

     

    container can use the JSP for multiple concurrent request

     

     

    threads. The default is "true".

     

    info

    An arbitrary string. This can have any value. It is provided

     

     

    so that the JSP can provide information to a management

     

     

    tool about its contents, purpose, name, etc.

     

    errorPage

    The URL of the web page that should be sent to the client if

     

     

    an error occurs in a page.

     

    isErrorPage

    Whether the current page is an error page. The default is

     

     

    false.

     

    contentType

    Defines the content type of the page. The content type can

     

     

    appear as a simple type specification, or as a type

     

     

    specification and a charset. The default value is

     

     

    "text/html" for JSP-style JSP tags and "text/xml" for

     

     

    XML-style JSP tags. When including the charset, the syntax

     

     

    for the attribute is contentType="text/html;charset=

     

     

    char_set_identifier". Whitespace can follow the

     

     

    semicolon in the attribute value. Charsets indicate how

     

     

    written characters are encoded, so that pages can support

     

     

    languages that use different scripts. Information about

     

     

    charsets can be found at

     

     

    http://www.w3.org/TR/REC-html40/charset.html.

     

    pageEncoding

    The charset of the current page. The default is ISO-8859-1

     

     

    (Latin script) for JSP-style and UTF-8 (an 8-bit Unicode

     

     

    encoding) for XML-style tags.

    include

    file

    The file to be included at the current position in the file.

     

     

    The included file can be any HTML or JSP page or

     

     

    fragment of a page. The file is specified using a URI to a file

     

     

    within the web application.

    A single JSP page can have multiple instances of the page directive.

    The include directive is used, as stated in the table, to include another page within the current page. This might typically be a standard header or footer, but it can include any content. You would use this when you have standard data that you want to include in multiple JSP pages. The file is included when the page is translated into its Java form. Later we will see a function that allows you to include content at request time.

    Scripting Elements

    The scripting elements are the elements in the page that include the Java code. There are three subforms of this element: declarations, scriptlets, and expressions. Their forms are:

     

    JSP Style

    XML

    <%! declaration %>

    <jsp:declaration>declaration
    </jsp:declaration>

    <% scriptlet code %>

    <jsp:scriptlet>code fragment</jsp:scriptlet>

    <%= expression %>

    <jsp:expression>expression
    </jsp:expression>

    Declarations

    A declaration is used to declare, and optionally define, a Java variable or a method. It works just like any declaration within a Java source code file. The declaration only appears within the translated JSP page, but not in the output to the client. For example, to declare a Vector in your JSP, you would use one of these forms:

      <%! Vector v = new Vector(); %>
      <jsp:declaration>Vector v = new Vector
      ();</jsp:declaration>

    This JSP fragment declares a variable v of type Vector and initializes it by calling the Vector constructor. Any variable you declare within a declaration element becomes an instance variable of the JSP page implementation class, and thus is global to the entire page. Thus, you must take care when initializing variables with a declaration, because instance variables are not thread-safe. By default, the server can send multiple requests to the same page simultaneously. You dont want one thread to change the variable while another thread is using the variable.

    You can also declare and define methods within a declaration element:

      <%!
     
    public int void countTokens(String s) {
        StringTokenizer st = new StringTokenizer(s);
        return st.countTokens();
     
    }
      %>
      <jsp:declaration>
      public int countTokens(String s) {
       
    StringTokenizer st = new StringTokenizer(s);
       
    return st.countTokens();
      }
      </jsp:declaration>

    Variables or methods in a declaration element can be called by any other code in the page.

    More Java Articles
    More By Apress Publishing


       · This article is an excerpt from the book "Beginning J2EE 1.4 From Novice to...
     

    Buy this book now. This article is excerpted from chapter three of Beginning J2EE 1.4 From Novice to Professional, written by James L. Weaver, Kevin Mukhar, and Jim Crume (Apress, 2004; ISBN: 1590593413). Check it out at your favorite bookstore today. Buy this book now.

    JAVA ARTICLES

    - Deploying Multiple Java Applets as One
    - Deploying Java Applets
    - Understanding Deployment Frameworks
    - Database Programming in Java Using JDBC
    - Extension Interfaces and SAX
    - Entities, Handlers and SAX
    - Advanced SAX
    - Conversions and Java Print Streams
    - Formatters and Java Print Streams
    - Java Print Streams
    - Wildcards, Arrays, and Generics in Java
    - Wildcards and Generic Methods in Java
    - Finishing the Project: Java Web Development ...
    - Generics and Limitations in Java
    - Getting Started with Java Web Development in...







    © 2003-2008 by Developer Shed. All rights reserved. DS Cluster 3 hosted by Hostway