Tutorials Logic, IN +91 8092939553 info@tutorialslogic.com
FAQs Support
Navigation
Home About Us Contact Us Blogs FAQs
Tutorials
All Tutorials
Services
Academic Projects Resume Writing Interview Questions Website Development
Compiler Tutorials

JSP Syntax

JSP Scripting Elements

JSP provides three types of scripting elements that allow you to embed Java code directly into HTML pages. Each serves a distinct purpose:

ElementSyntaxPurpose
Scriptlet<% code %>Execute Java statements
Expression<%= expr %>Output a value to the page
Declaration<%! decl %>Declare variables/methods
JSP Comment<%-- comment --%>Server-side comment (not in HTML)
Scriptlets and Expressions
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<body>

<%-- JSP Comment: Not visible in browser source --%>
<!-- HTML Comment: Visible in browser source -->

<h2>Scriptlet Example</h2>
<%
    // Scriptlet: Java code block
    int[] numbers = {1, 2, 3, 4, 5};
    int sum = 0;
    for (int n : numbers) {
        sum += n;
        out.println("<p>Number: " + n + "</p>");
    }
%>
<p>Sum = <%= sum %></p>

<h2>Expression Example</h2>
<p>2 + 3 = <%= 2 + 3 %></p>
<p>String length: <%= "Hello World".length() %></p>
<p>Upper case: <%= "hello".toUpperCase() %></p>

</body>
</html>

Declarations

Declarations (<%! %>) are used to declare instance variables and methods that belong to the generated Servlet class. Unlike scriptlets, declarations are placed outside the _jspService() method, so they are shared across all requests.

Declarations Example
<%@ page language="java" contentType="text/html; charset=UTF-8"%>

<%!
    // Instance variable - shared across requests (be careful with thread safety!)
    private int visitCount = 0;

    // Method declaration
    public String greet(String name) {
        return "Hello, " + name + "! Welcome to JSP.";
    }

    // Factorial method
    public long factorial(int n) {
        if (n <= 1) return 1;
        return n * factorial(n - 1);
    }
%>

<html>
<body>
    <%
        visitCount++;  // Increment visit counter
    %>
    <p>Visit count: <%= visitCount %></p>
    <p><%= greet("Alice") %></p>
    <p>5! = <%= factorial(5) %></p>
    <p>10! = <%= factorial(10) %></p>
</body>
</html>

Mixing HTML and Java

One of JSP's key features is the ability to mix HTML and Java code. You can open and close scriptlet tags multiple times, interleaving HTML between them:

Mixing HTML and Java
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ page import="java.util.ArrayList, java.util.List"%>
<!DOCTYPE html>
<html>
<body>
    <h2>Student List</h2>
    <table border="1">
        <tr><th>#</th><th>Name</th><th>Grade</th></tr>
        <%
            List<String[]> students = new ArrayList<>();
            students.add(new String[]{"Alice", "A"});
            students.add(new String[]{"Bob", "B+"});
            students.add(new String[]{"Charlie", "A-"});

            int i = 1;
            for (String[] student : students) {
        %>
        <tr>
            <td><%= i++ %></td>
            <td><%= student[0] %></td>
            <td><%= student[1] %></td>
        </tr>
        <%
            }  // end for loop
        %>
    </table>
</body>
</html>

Ready to Level Up Your Skills?

Explore 500+ free tutorials across 20+ languages and frameworks.