Skip to content
Home » Scripting in jsp

Scripting in jsp

Below is a clear, structured, and detailed explanation of Scripting in JSP, written in the same conceptual and technical style as your previous JSP topics.


Scripting in JSP

Introduction

Scripting in JSP (JavaServer Pages) refers to the use of Java code embedded inside JSP pages to generate dynamic content. JSP scripting allows developers to write Java statements, expressions, and declarations directly within a JSP file, which are later translated into a servlet by the JSP engine.

Scripting elements are executed on the server side and help in processing requests, performing calculations, and controlling page behavior dynamically.


Purpose of JSP Scripting

JSP scripting is used to:

  • Generate dynamic content
  • Access request, response, and session objects
  • Perform simple logic and calculations
  • Interact with Java objects
  • Control the flow of page execution

Types of Scripting Elements in JSP

JSP provides three types of scripting elements:

  1. Scriptlet
  2. Expression
  3. Declaration

1. Scriptlet

Definition

A scriptlet is a block of Java code written inside a JSP page that is executed every time a request is made to the page.

Syntax

<% Java code %>

How Scriptlets Work

  • Scriptlet code is placed inside the _jspService() method of the generated servlet
  • Variables declared here are local variables
  • Executed for each request

Example

<%
int a = 10;
int b = 20;
int sum = a + b;
out.println("Sum = " + sum);
%>

Key Characteristics

  • Used for control statements (if, loops, etc.)
  • Access implicit objects easily
  • Thread-safe when using local variables

2. Expression

Definition

A JSP expression is used to output the value of a Java expression directly to the response.

Syntax

<%= expression %>

How Expressions Work

  • Expression is evaluated
  • Result is automatically converted to string
  • Output is written to the response using out.print()

Example

<%= "Current Time: " + new java.util.Date() %>

Key Characteristics

  • No semicolon required
  • Only expressions allowed (no statements)
  • Commonly used for displaying values

3. Declaration

Definition

A declaration is used to declare variables and methods at class level in the generated servlet.

Syntax

<%! declaration %>

How Declarations Work

  • Code is placed outside _jspService() method
  • Variables become instance variables
  • Methods become member methods

Example

<%! 
int count = 0;

public int square(int n) {
    return n * n;
}
%>

Usage:

<% count++; %>
Visits: <%= count %>
Square of 5: <%= square(5) %>

Key Characteristics

  • Shared across multiple requests
  • Not thread-safe by default
  • Must be used carefully

Implicit Objects Used in JSP Scripting

JSP provides built-in objects that can be used directly in scripting elements:

Implicit ObjectPurpose
requestClient request data
responseResponse to client
sessionSession management
applicationApplication-wide data
outOutput stream
configServlet configuration
pageContextAccess to JSP context
exceptionError handling

Comparison of JSP Scripting Elements

FeatureScriptletExpressionDeclaration
Syntax<% %><%= %><%! %>
PlacementInside _jspService()Inside _jspService()Class level
ExecutionEvery requestEvery requestOnce per servlet
VariablesLocalLocalInstance
OutputManualAutomaticNo direct output

Limitations of JSP Scripting

  • Mixes Java code with HTML
  • Reduces readability
  • Difficult to maintain in large applications
  • Increases risk of logic–presentation coupling
  • Thread-safety issues with declarations

Modern Alternatives to JSP Scripting

To overcome scripting drawbacks, modern JSP development prefers:

  • Expression Language (EL)
  • JSTL (JSP Standard Tag Library)
  • MVC-based design using Servlets and frameworks

Conclusion

Scripting in JSP provides a mechanism to embed Java code directly into JSP pages using scriptlets, expressions, and declarations. While scripting enables dynamic content generation and server-side processing, excessive use can lead to poor design and maintenance challenges. Understanding JSP scripting is essential for foundational knowledge, but modern best practices encourage minimizing scripting in favor of tag libraries and cleaner MVC-based approaches.