O'Reilly logo

JavaServer Pages, Second Edition by Hans Bergsten

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Using Declarations

I have described two of the three JSP scripting elements in this chapter so far: scriptlets and expressions. There’s one more called a declaration element, which is used to declare Java variables and methods in a JSP page. My advice is this: don’t use it. Let me explain why.

In general, Java variables can be declared either within a method or outside the body of all methods in a class, like this:

public class SomeClass {
  // Instance variable
  private String anInstanceVariable;
  
  // Method
  public void doSomething(  ) {
    String aLocalVariable;
  }
}

A variable declared outside the body of all methods is called an instance variable . Its value can be accessed from any method in the class, and it keeps its value even when the method that sets it returns. A variable declared within the body of a method is called a local variable ; it can be accessed only within the method where it’s declared. When the method returns, the local variable disappears.

Recall from Chapter 3 that a JSP page is turned into a servlet class when it’s first requested, and the JSP container creates one instance of this class. If more than one user requests the same page at the same time, the single instance is used for all requests. Each user is assigned what is called a thread in the server, and each thread executes the same method in the JSP object. When more than one thread executes the same code, you have to make sure the code is thread safe. This means that the code must behave the same when many ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required