JSP (JavaServer Pages)

← Back to Home

Note: This is a reference page with static code examples. JSP requires a Java Servlet container like Apache Tomcat, which is not configured on this server.

Overview

Released: 1999 by Sun Microsystems (now Oracle)

File Extension: .jsp

Server Required: Java Servlet container (Tomcat, Jetty, JBoss, etc.)

Language: Java

JSP (JavaServer Pages) brought server-side scripting to the Java ecosystem. It allows embedding Java code directly in HTML pages using special tags. JSP pages are compiled into Java Servlets, making them very performant after the first request.

JSP became the standard for enterprise Java web development and remains widely used, though modern Java web development often uses frameworks like Spring MVC with Thymeleaf templates.

Hello World

JSP uses <% %> for code blocks and <%= %> for expression output:

<%@ page language="java" contentType="text/html; charset=UTF-8" %> <!DOCTYPE html> <html> <head> <title>Hello, JSP!</title> </head> <body> <h1>Hello, JSP!</h1> <p>This page was generated with JavaServer Pages</p> <p>Current time: <%= new java.util.Date() %></p> <p>Your IP: <%= request.getRemoteAddr() %></p> </body> </html>

Environment Variables

JSP uses the implicit request object to access headers and server information:

<%@ page import="java.util.Enumeration" %> <h2>Request Headers</h2> <% Enumeration<String> headerNames = request.getHeaderNames(); while (headerNames.hasMoreElements()) { String name = headerNames.nextElement(); String value = request.getHeader(name); %> <b><%= name %>:</b> <%= value %><br> <% } %> <h2>Server Info</h2> <p><b>Server Name:</b> <%= request.getServerName() %></p> <p><b>Server Port:</b> <%= request.getServerPort() %></p> <p><b>Protocol:</b> <%= request.getProtocol() %></p>

Form Handling (GET)

Query parameters are accessed via request.getParameter():

<% String name = request.getParameter("name"); if (name != null && !name.isEmpty()) { %> <p>Hello, <%= name %>!</p> <% } else { %> <p>No name provided</p> <% } %>

Form Handling (POST)

POST data uses the same request.getParameter() method:

<% if ("POST".equalsIgnoreCase(request.getMethod())) { String username = request.getParameter("username"); String email = request.getParameter("email"); %> <p>Username: <%= username %></p> <p>Email: <%= email %></p> <% } %>

Sessions

JSP provides the implicit session object for session management:

<% // Store in session session.setAttribute("username", request.getParameter("username")); // Retrieve from session String savedName = (String) session.getAttribute("username"); // Invalidate session session.invalidate(); %>

JSTL (JSP Standard Tag Library)

Modern JSP often uses JSTL for cleaner code:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!-- Conditional --> <c:if test="${not empty param.name}"> <p>Hello, <c:out value="${param.name}"/>!</p> </c:if> <!-- Loop --> <c:forEach var="item" items="${myList}"> <p><c:out value="${item}"/></p> </c:forEach>
Enterprise Technology: JSP remains important in enterprise Java environments. Modern alternatives include Thymeleaf, Freemarker, and server-side rendering with Spring MVC.

← Back to Home