Sobes.tech
Junior

Čo sú JavaServer Pages (JSP)?

sobes.tech AI

Odpoveď od AI

JSP je technológia webového programovania, ktorá umožňuje vkladanie Java kódu do HTML stránok. Cieľom JSP je vytvárať dynamický webový obsah. Server aplikácií, napríklad Apache Tomcat, spracováva JSP súbor prekladom na servlet, ktorý následne generuje odpoveď (zvyčajne HTML) pre klienta.

Kľúčové prvky JSP:

  • Skriptové prvky:
    • Skriplety (<% ... %>): vkladajú ľubovoľný Java kód.
    • Výrazy (<%= ... %>): zobrazujú hodnotu výrazu na stránke.
    • Deklarácie (<%! ... %>): deklarujú premenné a metódy v triede servleta.
  • Direktívy: Riadi správanie JSP kontajnera. Príklady:
    • <%@ page ... %>: nastavuje atribúty stránky (jazyk, kódovanie, import tried atď.).
    • <%@ include ... %>: vkladá obsah iného súboru.
    • <%@ taglib ... %>: deklaruje použitie tagovej knižnice.
  • Štandardné akcie (JSP Standard Actions): XML podobné tagy na vykonávanie preddefinovaných akcií. Príklady:
    • <jsp:include page="..."/>: dynamicky vkladá obsah z iného zdroja.
    • <jsp:forward page="..."/>: presmerováva požiadavku na iný zdroj.
    • <jsp:useBean id="..." class="..." scope="..."/>: používa alebo vytvára JavaBeans.
  • Implicitné objekty: objekty dostupné v skriptletoch a výrazoch bez explicitného deklarovania. Príklady: request, response, session, application, out.

Príklad jednoduchého JSP súboru:

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

    <%
        // Toto je skriplet
        String message = "Toto je správa zo skripletu.";
        out.println("<p>" + message + "</p>");
    %>

</body>
</html>

Výhody JSP:

  • Jednoduchšie vytváranie dynamického obsahu v porovnaní s čistými servletmi (menej boilerplate kódu).
  • Oddelenie prezentácie (HTML) a logiky aplikácie (Java), hoci v jednoduchých prípadoch môže byť kód silno zmiešaný.
  • Použitie tagových knižníc (JSTL) pre čistotu kódu a zníženie počtu skripletov.

Nevýhody JSP:

  • Miešanie prezentácie a business logiky môže viesť k ťažko udržiavateľnému kódu (spagetti kód), najmä vo veľkých projektoch.
  • Nedostatok prísnej typovej kontroly v skripletoch môže viesť k chybám počas behu.
  • Složitá testovateľnosť jednotlivých JSP stránok, pretože sú úzko prepojené s kontajnerom servletov.

V moderných webových aplikáciách sa JSP často používa v kombinácii s frameworkmi (napríklad Spring MVC), kde JSP slúži ako View. Avšak JSP je nahrádzané silnejšími šablónovacími jazykmi (napríklad Thymeleaf, FreeMarker) a klientskými frameworkmi (React, Angular, Vue).