Sobes.tech
Junior

Co jsou JavaServer Pages (JSP)?

sobes.tech AI

Odpověď od AI

JSP je technologie webového programování, která umožňuje vkládání Java kódu do HTML stránek. Cílem JSP je vytvářet dynamický webový obsah. Aplikační server, například Apache Tomcat, zpracovává JSP soubor překladem do servletu, který následně generuje odpověď (obvykle HTML) pro klienta.

Klíčové prvky JSP:

  • Skriptové prvky:
    • Skriplety (<% ... %>): vkládají libovolný Java kód.
    • Výrazy (<%= ... %>): zobrazují hodnotu výrazu na stránce.
    • Deklarace (<%! ... %>): deklarují proměnné a metody ve třídě servletu.
  • Direktivy: Řídí chování JSP kontejneru. Příklady:
    • <%@ page ... %>: nastavuje atributy stránky (jazyk, kódování, import tříd apod.).
    • <%@ include ... %>: vkládá obsah jiného souboru.
    • <%@ taglib ... %>: deklaruje použití tagové knihovny.
  • Standardní akce (JSP Standard Actions): XML podobné tagy pro vykonávání předdefinovaných akcí. Příklady:
    • <jsp:include page="..."/>: dynamicky vkládá obsah jiného zdroje.
    • <jsp:forward page="..."/>: přesměrovává požadavek na jiný zdroj.
    • <jsp:useBean id="..." class="..." scope="..."/>: používá nebo vytváří JavaBeans.
  • Implicitní objekty: objekty dostupné ve skripletech a výrazech bez explicitního deklarování. Příklady: request, response, session, application, out.

Příklad jednoduchého JSP souboru:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Příklad JSP</title>
</head>
<body>
    <h1>Ahoj z JSP!</h1>
    <p>Aktuální čas: <%= new java.util.Date() %></p>

    <%
        // Toto je skriptlet
        String message = "Toto je zpráva ze skripletu.";
        out.println("<p>" + message + "</p>");
    %>

</body>
</html>

Výhody JSP:

  • Jednodušší tvorba dynamického obsahu ve srovnání s čistými servlety (méně boilerplate kódu).
  • Oddělení prezentace (HTML) a logiky aplikace (Java), i když v jednoduchých případech může být kód silně promíšen.
  • Použití tagových knihoven (JSTL) pro čistotu kódu a snížení počtu skriptletů.

Nevýhody JSP:

  • Míchání prezentace a business logiky může vést ke špatně udržovatelnému kódu (spagetti kód), zejména ve velkých projektech.
  • Nedostatek striktní typové kontroly v skriptletech může vést k chybám za běhu.
  • Složitost testování jednotlivých JSP stránek, protože jsou úzce spojeny s kontejnerem servletů.

V moderních webových aplikacích se JSP často používá ve spojení s frameworky (například Spring MVC), kde JSP slouží jako View. Nicméně JSP je nahrazováno silnějšími šablonovacími jazyky (například Thymeleaf, FreeMarker) a klientskými frameworky (React, Angular, Vue).