Sobes.tech
Junior

Ի՞նչ են JavaServer Pages (JSP)-ները։

sobes.tech AI

Պատասխան AI-ից

JSP — դա վեբ ծրագրավորման տեխնոլոգիա է, որը թույլ է տալիս Java կոդը ներդնել HTML էջերում: JSP-ի նպատակն է ստեղծել դինամիկ վեբ բովանդակություն: Ապլիկացիոն սերվերը, օրինակ՝ Apache Tomcat-ը, մշակում է JSP ֆայլը՝ այն փոխելով servlete, որը հետո ստեղծում է պատասխան (հաճախ HTML) հաճախորդի համար:

JSP-ի հիմնական տարրերը՝

  • Սկրիպտային տարրեր:
    • Скрипլետներ (<% ... %>): ներդնում են ցանկացած Java կոդ:
    • արտահայտություններ (<%= ... %>): ցուցադրում են արտահայտության արժեքը էջում:
    • հայտարարություններ (<%! ... %>): հայտարարում են փոփոխականներ և մեթոդներ servlete-ի դասում:
  • Direktivner: Կառավարում են JSP կոնտեյների վարքագիծը:
    • <%@ page ... %>: սահմանում է էջի հատկությունները (լեզու, կոդավորում, ներմուծում՝ դասեր և այլն):
    • <%@ include ... %>: ներառում է այլ ֆայլի բովանդակությունը:
    • <%@ taglib ... %>: հայտարարում է տեգային գրադարանի օգտագործումը:
  • Ստանդարտ գործողություններ (JSP Standard Actions): XML-պես տեգեր՝ նախապես սահմանված գործողությունների կատարման համար:
    • <jsp:include page="..."/>: դինամիկորեն ներառում է այլ ռեսուրսի բովանդակությունը:
    • <jsp:forward page="..."/>: ուղղորդում է հարցումը այլ ռեսուրսի:
    • <jsp:useBean id="..." class="..." scope="..."/>: օգտագործում կամ ստեղծում է JavaBeans:
  • Անհայտ օբյեկտներ (Implicit Objects): օբյեկտներ, որոնք հասանելի են սկրիպտների և արտահայտությունների մեջ՝ առանց հստակ հայտարարելու:

Օրինակ՝ request, response, session, application, out:

Պարզ JSP ֆայլի օրինակ՝

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>JSP Օրինակ</title>
</head>
<body>
    <h1>Բարև, JSP-ից!</h1>
    <p>Ընթացիկ ժամանակը՝ <%= new java.util.Date() %></p>

    <%
        // Սա սկրիպտ է
        String message = "Սա սկրիպտից հաղորդագրություն է.";
        out.println("<p>" + message + "</p>");
    %>

</body>
</html>

JSP-ի առավելությունները՝

  • Դինամիկ բովանդակության ստեղծումը հեշտ է՝ համեմատած մաքուր servlete-ների հետ (փոքր է բոյլերփլեյթ կոդը):
  • Ներդրված է ներկայացման (HTML) և ծրագրային լոգիկայի (Java) բաժանումը՝ չնայած պարզ դեպքերում կոդը կարող է խիստ խառնել:
  • Tag libraries (JSTL) օգտագործում՝ կոդի մաքրության և սկրիպտների քանակի նվազեցման համար:

JSP-ի թերությունները՝

  • Ներդրված presentation և business logic-ը կարող է հանգեցնել դժվարին սպասարկվող կոդի (spaghetti code), հատկապես մեծ նախագծերում:
  • Խիստ տիպավորման բացակայությունը սկրիպտներում կարող է հանգեցնել ժամանակային սխալների:
  • Անհատական էջերի թեստավորումը բարդ է՝ քանի որ դրանք սերտորեն կապված են սերվլետների կոնտեյների հետ:

Նորագույն վեբ հավելվածներում JSP հաճախ օգտագործվում է ֆրեյմվորկների (օրինակ՝ Spring MVC) հետ միասին՝ որպես View։ Սակայն JSP-ը փոխարինվում է ավելի հզոր շաբլոնիզատորներով (օրինակ՝ Thymeleaf, FreeMarker) և հաճախորդային ֆրեյմվորկներով (React, Angular, Vue):