Sobes.tech
Junior

JavaServer Pages (JSP) nədir?

sobes.tech Süni İntellekt

AI-dan cavab

JSP veb proqramlaşdırma texnologiyasıdır və Java kodunu HTML səhifələrinə yerləşdirməyə imkan verir. JSP-nin məqsədi dinamik veb məzmun yaratmaqdır. Apache Tomcat kimi tətbiq serveri JSP faylını tərtib edərək servlet-ə çevirir və sonra müştəri üçün cavab (adətən HTML) yaradır.

JSP-nin əsas elementləri:

  • Skript elementləri:
    • Scriptletlər (<% ... %>): Hər hansı Java kodunu yerləşdirmək.
    • İfadələr (<%= ... %>): Səhifədə ifadənin dəyərini göstərir.
    • Deklarasiyalar (<%! ... %>): Servlet sinfində dəyişənlər və metodlar elan edir.
  • Direktivlər: JSP konteynerinin davranışını idarə edir. Nümunələr:
    • <%@ page ... %>: Səhifə atributlarını müəyyən edir (dil, kodlama, sinif idxalı və s.).
    • <%@ include ... %>: Digər faylın məzmununu daxil edir.
    • <%@ taglib ... %>: Etiket kitabxanasının istifadəsini elan edir.
  • Standart hərəkətlər (JSP Standard Actions): XML-ə bənzər etiketlər vasitəsilə əvvəlcədən təyin olunmuş hərəkətləri yerinə yetirir. Nümunələr:
    • <jsp:include page="..."/>: Dinamik olaraq başqa resursun məzmununu daxil edir.
    • <jsp:forward page="..."/>: Sorğunu başqa resursa yönləndirir.
    • <jsp:useBean id="..." class="..." scope="..."/>: JavaBeans istifadə edir və ya yaradır.
  • İmplicit obyektlər: Scriptletlər və ifadələrdə açıq elan edilmədən mövcud olan obyektlər. Nümunələr: request, response, session, application, out.

Sadə JSP fayl nümunəsi:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>JSP Nümunəsi</title>
</head>
<body>
    <h1>JSP-dən salam!</h1>
    <p>İndiki vaxt: <%= new java.util.Date() %></p>

    <% // Bu scriptletdir
        String message = "Bu scriptletdən mesajdır.";
        out.println("<p>" + message + "</p>");
    %>

</body>
</html>

JSP-in üstünlükləri:

  • Dinamik məzmun yaratmaqda sadəlik (saf servletlərə nisbətən daha az boilerplate kod).
  • Təqdimat (HTML) və tətbiq məntiqinin (Java) ayrılması, baxmayaraq ki, sadə hallarda kod çox qarışıq ola bilər.
  • JSTL kimi etiket kitabxanələrindən istifadə edərək kodun təmizliyi və scriptletlərin azaldılması.

JSP-in çatışmazlıqları:

  • Təqdimat və biznes məntiqinin qarışması, böyük layihələrdə kodun saxlanmasını çətinləşdirə bilər.
  • Scripting elementlərində sərt tip yoxluğu, icra zamanı səhvlərə səbəb ola bilər.
  • Fərdi JSP səhifələrinin test edilməsi çətindir, çünki onlar servlet konteynerinə sıx bağlıdır.

Müasir veb tətbiqlərdə JSP tez-tez framework-lərlə (məsələn, Spring MVC) Model-View-Controller (MVC) prinsipi əsasında istifadə olunur, burada JSP View kimi çıxış edir. Ancaq JSP daha güclü şablon mühərrikləri (Thymeleaf, FreeMarker) və müştəri tərəfi framework-lər (React, Angular, Vue) ilə əvəz olunur.