JSP-toimintotunnisteet

โšก ร„lykรคs yhteenveto

JSP-toimintotunnisteet kรคyttรคvรคt XML-syntaksia servlet-moottorin toiminnan hallintaan, jolloin kehittรคjรคt voivat sisรคllyttรครค tiedostoja, vรคlittรครค pyyntรถjรค, tyรถskennellรค JavaPavut ja upota dynaamista sisรคltรถรค pyyntรถjen kรคsittelyn aikana.

  • ๐Ÿท๏ธ Vakiosarja: Yksitoista vakiotoimintotagia kรคsittelee include-komponentteja, edelleenlรคhetyksiรค, bean-komponentteja, laajennuksia ja XML-tulostetta.
  • ๐Ÿ“œ XML-syntaksi: Toimintotunnisteet noudattavat tarkkaa XML-muotoa ja ne arvioidaan uudelleen jokaisen pyynnรถn yhteydessรค.
  • ๐Ÿ”— Papujen integrointi: jsp:useBean-, jsp:setProperty- ja jsp:getProperty-funktioiden hallinta JavaPavun elinkaari ja ominaisuudet.
  • โœ… Sivun kulku: jsp:include yhdistรครค resurssit; jsp:forward siirtรครค pyyntรถjen kรคsittelyn toiselle sivulle.
  • ๐Ÿงช Dynaaminen XML: jsp:body, jsp:attribute, jsp:text ja jsp:output luovat XML-rakenteita dynaamisesti.
  • ๐Ÿค– Tekoรคlyn modernisointi: Tekoรคlyavustajat auttavat vanhan JSP-toimintokoodin uudelleenmuotoilussa nykyaikaisiksi frameworkeiksi.

JSP-toimintotunnisteet

Mikรค on JSP-toimintotunniste?

JSP-toimintotunnisteet kรคyttรคvรคt XML-syntaksin rakenteita servlet-moottorin toiminnan ohjaamiseen. Kehittรคjรคt voivat dynaamisesti lisรคtรค tiedoston, kรคyttรครค sitรค uudelleen JavaBean-komponentit ohjaavat kรคyttรคjรคn toiselle sivulle ja suorittavat samankaltaisia โ€‹โ€‹ajonaikaisia โ€‹โ€‹toimintoja JSP-toimintotunnisteiden, kuten include ja forward, avulla. Toisin kuin direktiivit, toimintotunnisteet arvioidaan uudelleen joka kerta, kun sivua kรคytetรครคn, mikรค tekee niistรค ihanteellisia dynaamiseen toimintaan pyyntรถjen kรคsittelyn aikana.

Syntaksi:

<jsp:action_name attribute="value" />

Tรคssรค JSP-vakiotoimintotunnisteita kรคsittelevรคssรค opetusohjelmassa opit, miten kukin toimintotunniste toimii, mitรค se tekee ja miten sitรค kรคytetรครคn oikeassa JSP-tiedostossa.

Luettelo JSP:ssรค yleisesti kรคytetyistรค toimintotunnisteista

JSP:ssรค on 11 tyyppiรค vakiotoimintotunnisteita, ja tรคssรค on tรคydellinen luettelo niistรค.

Toimintotunnisteen nimi Syntaksi Tuotetiedot
jsp:useBean Kรคytetรครคn papujen kutsumiseen ja kรคyttรคmiseen JSP-sivulla.
jsp:include <jsp:include page=โ€page URLโ€flush=โ€true/falseโ€ /> Sisรคllyttรครค toisen JSP-tiedoston nykyiseen tiedostoon pyynnรถn kรคsittelyn aikana.
jsp:setProperty Asettaa pavun ominaisuuden.
jsp:getProperty Hakee pavun ominaisuuden ja muuntaa sen merkkijonoksi tulostamista varten.
jsp: eteenpรคin Vรคlittรครค pyynnรถn toiselle JSP- tai staattiselle sivulle.
jsp:plugin Esittelee Java komponentit, kuten sovelmat tai pavut, JSP:hen ja luo tunnisteet automaattisesti.
jsp:body Mรครคrittรครค XML-elementit, jotka luodaan dynaamisesti pyynnรถn kรคsittelyn aikana.
jsp:teksti malliteksti Kรคytetรครคn mallitekstin lisรครคmiseen JSP-sivuille, jotka sisรคltรคvรคt vain tekstiรค ja EL-lausekkeita.
jsp:param Ohjaa parametrit jsp:plugin-toiminnossa lisรคtietojen lisรครคmiseksi.
jsp:attribute Mรครคrittรครค dynaamisesti luodut XML-attribuutit.
jsp:lรคhtรถ Mรครคrittรครค tulosteessa kรคytettรคvรคn XML- tai DOCTYPE-mรครคrityksen.

Nyt kun sinulla on tรคydellinen luettelo, tutkimme kutakin nรคistรค JSP-toimintotunnisteista yksi kerrallaan syntaksin ja toimivan esimerkin avulla.

jsp:useBean-toimintotunniste

  • Tรคtรค toiminnon nimeรค kรคytetรครคn, kun haluat kรคyttรครค JavaJSP-sivun pavut.
  • Tรคmรคn tagin avulla voit helposti kutsua bean-komponenttia ja kรคyttรครค uudelleen palvelinpuolen komponentteja.

jsp:useBean-syntaksi:

<jsp:useBean id="" class="" />

Tรคssรค id mรครคrittรครค tรคmรคn beanin tunnisteen ja class on bean-luokan koko polku.

Esimerkiksi:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Action JSP1</title>
</head>
<body>
<jsp:useBean id="name" class="demotest.DemoClass">
</body>
</html>

Koodin selitys:

Code Rivi 10: Yllรค olevassa koodissa kรคytรคt papun โ€paputunnustaโ€ ja โ€luokkapolkuaโ€.

jsp:include-toimintotunniste

  • jsp:include-ominaisuutta kรคytetรครคn JSP-tiedoston lisรครคmiseen toiseen tiedostoon pyynnรถn kรคsittelyn aikana, samalla tavalla kuin include-komennon ohjeet.
  • Se lisรคtรครคn pyynnรถn kรคsittelyvaiheessa, mikรค tarkoittaa, ettรค sisรคllytettyรค sisรคltรถรค arvioidaan joka kerta, kun sivua pyydetรครคn.

jsp:include-muuttujasta seuraava syntaksi:

<jsp:include page="page URL" flush="true/false">

Esimerkiksi:

Action_jsp2-tiedostossa (Code Rivi 10), sisรคllytรคmme date.jsp-tiedoston.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Date Guru JSP</title>
</head>
<body>
<jsp:include page="date.jsp" flush="true" />
</body>
</html>

Date.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<p>
Today's date: <%= new java.util.Date().toLocaleString()%>
</p>
</body>
</html>

Koodin selitys:

Action_jsp2.jsp

Code Rivi 10: Ensimmรคisessรค tiedostossa on date.jsp-tiedosto action_jsp2.jsp-tiedostossa.

Date.jsp:

Code Rivi 11: Tulostamme tรคmรคn pรคivรคn pรคivรคmรครคrรคn date.jsp-tiedoston koodiriville 11.

Kun suoritat koodin, tuloste on seuraava.

jsp:include

lรคhtรถ:

  • Se nรคyttรครค tรคmรคn pรคivรคn pรคivรคmรครคrรคn kellonaikoineen, koska pรคivรคmรครคrรคtiedosto sisรคltyy JSP-pรครคsivuun.

jsp:setProperty-toimintotunniste

  • Tรคtรค JSP:n vakiotoimintoa kรคytetรครคn bean-komponentin ominaisuuden asettamiseen.
  • Sinun on mรครคriteltรคvรค papu ennen ominaisuuden asettamista.

Syntaksi:

<jsp:setProperty name="" property="" >

Tรคssรค nimi mรครคrittรครค bean-komponentin, jonka ominaisuus asetetaan, ja ominaisuus on ominaisuus, jonka haluat asettaa. Voit myรถs asettaa value- ja param-attribuutit. Tรคssรค value ei ole pakollinen, ja se mรครคrittรครค ominaisuudelle annettavan arvon. Tรคssรค param on pyyntรถparametrin nimi, jonka avulla arvo voidaan noutaa. setProperty-ominaisuuden esimerkki havainnollistetaan alla getProperty-ominaisuuden avulla.

jsp:getProperty-toimintotunniste

  • Tรคtรค toimintoa kรคytetรครคn pavun ominaisuuden hankkimiseen.
  • Se muuntaa ominaisuuden merkkijonoksi ja lopuksi lisรครค sen tulosteeseen.

Syntaksi:

<jsp:getProperty name="" property="" >

Tรคssรค nimi on sen beanin nimi, josta ominaisuus on noudettava, ja bean tulee mรครคritellรค. Ominaisuusattribuutti on noudettavan bean-ominaisuuden nimi.

Esimerkki setPropertystรค ja getPropertysta:

TestBean.java:

package demotest;

import java.io.Serializable;

public class TestBean implements Serializable{
	
	private String msg = "null";
	
	public String getMsg() {
		return msg;
	}
	
	public void setMsg(String msg) {
		this.msg = msg;
	}
}

Action_jsp3.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Action 3</title>
</head>
<body>
<jsp:useBean id="GuruTest" class="demotest.TestBean" />
<jsp:setProperty name="GuruTest" property="msg" value="GuruTutorial" />
<jsp:getProperty name="GuruTest" property="msg" />
</body>
</html>

Koodin selitys:

TestBean.java:

Code line 5TestBean toteuttaa Serializable-luokan. Se on bean-luokka, jonka koodissa on getter- ja setter-funktioita.

Code line 7Tรคssรค otamme yksityisen merkkijonomuuttujan msg arvoksi โ€nullโ€.

Code Rivi 9-14Tรคssรค kรคytรคmme muuttujan โ€msgโ€ getter- ja setter-funktioita.

Action_jsp3.jsp

Code Rivi 10: Tรคssรค kรคytรคmme โ€œuseBeanโ€-tagia, joka mรครคrittรครค beanin (TestBean), jota tรคssรค JSP-luokassa on kรคytettรคvรค.

Code Rivi 11: Tรคssรค asetamme bean TestBean -ominaisuuden msg arvoksi โ€GuruOpastus".

Code Rivi 12: Tรคssรค getProperty-metodilla saamme bean TestBean -ominaisuuden msg arvon (GuruOpastus), joka nรคkyy tulosteessa.

Kun suoritat yllรค olevan koodin, saat seuraavan tulosteen:

jsp:getProperty

lรคhtรถ:

Tรคssรค esimerkissรค, jossa kรคytetรครคn TestBeania, asetamme ominaisuuden โ€msgโ€ kรคyttรคmรคllรค setProperty-funktiota ja haemme ominaisuuden arvon kรคyttรคmรคllรค getProperty-funktiota muodossa โ€GuruOpastus".

jsp:forward-toimintotunniste

jsp:forward-toimintotunnistetta kรคytetรครคn pyynnรถn vรคlittรคmiseen toiselle JSP:lle tai mille tahansa staattiselle sivulle.

Tรครคllรค pyyntรถ voidaan vรคlittรครค ilman parametreja tai parametreilla.

Syntaksi:

<jsp:forward page="value">

Tรคssรค arvo ilmaisee, minne pyyntรถ on vรคlitettรคvรค.

Esimerkiksi:

Action_jsp41.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Action JSP1</title>
</head>
<body>
<jsp:forward page="jsp_action_42.jsp" />
</body>
</html>

Jsp_action_42.jsp

Guru Action JSP2</title>
</head>
<body>
<a>This is after forward page</a>
</body>
</html>

Koodin selitys:

Action_jsp41.jsp

Code Rivi 10: Tรคssรค kรคytรคmme forward JSP -toimintoa pyynnรถn vรคlittรคmiseen attribuutissa mainitulle sivulle, eli jsp_action_42.jsp.

Jsp_action_42.jsp

Code Rivi 10: Kun kutsumme action_jsp41.jsp-tiedostoa, pyyntรถ vรคlitetรครคn tรคlle sivulle ja saamme tulokseksi โ€Tรคmรค on vรคlityssivun jรคlkeenโ€.

Kun suoritamme yllรค olevan koodin, saamme seuraavan tulosteen.

jsp: eteenpรคin

lรคhtรถ:

Kutsumme tiedostoa action_jsp41.jsp, mutta pyyntรถ vรคlitetรครคn sivulle jsp_action_42.jsp, ja saamme kyseisen sivun tulosteena muodossa โ€Tรคmรค on jatkosivun jรคlkeenโ€.

jsp:plugin-toimintotunniste

  • Sitรค kรคytetรครคn esittelyyn Java komponentit JSP:hen, jossa Java komponentit voivat olla joko sovelmia tai papuja.
  • Se tunnistaa selaimen ja lisรครค tai tagit tiedostoon.

Syntaksi:

<jsp:plugin type="applet/bean" code="objectcode" codebase="objectcodebase">
  • Tรคssรค tyyppi mรครคrittรครค joko objektin tai papun.
  • Code mรครคrittรครค sovelman tai beanin luokan nimen.
  • Codepohja sisรคltรครค pohjan URL joka sisรคltรครค luokkien tiedostoja.

jsp:param-toimintotunniste

  • Tรคmรค on yllรค kuvatun plugin-objektin lapsiobjekti.
  • Sen on sisรคllettรคvรค yksi tai useampi toiminto lisรคparametrien antamiseksi.

Syntaksi:

<jsp:params>
<jsp:param name="val" value="val"/ >
</jsp:params>

Esimerkki laajennuksesta ja parametrista:

Action_jsp5.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Action guru jsp5</title>
</head>
<body>
<jsp:plugin type="bean" code="Student.class" codebase="demotest.Student">
  <jsp:params>
     <jsp:param name="id" value="5" />
     <jsp:param name="name" value="guru" />
  </jsp:params>
</jsp:plugin>
</body>
</html>

Opiskelija.java

package demotest; 

import java.io.Serializable;

public class Student implements Serializable {
	
	public String getName () { 
		return name; 
	}
	public void setName (String name) {
		this.name = name;
	}
	public int getId() { 
		return id; 
	} 
	public void setId (int id) { 
		this.id = id; 
	} 
	private String name = "null"; 
	private int id = 0;
	
}

Koodin selitys:

Action_jsp5.jsp

Code Rivi 10: Tรคssรค kรคytรคmme jsp:plugin-objektia, jossa otamme kolme attribuuttia.

  • Tyyppi โ€“ tรคssรค tapauksessa se on papu.
  • Code โ€“ tiedoston nimi.
  • Codebase โ€“ polku paketin nimellรค.

Code Rivi 11โ€“14: Tรคssรค otamme jsp:params-objektin, jonka alla on alitason param-objekti, jonka attribuuteilla on name ja value, ja asetamme id- ja name-arvot nรคihin attribuutteihin.

Opiskelija.java

Code 7-17: Kรคytรคmme getter- ja setter-funktioita muuttujille id ja name.

Code 19-20: Alustamme muuttujat id ja name.

Tรคssรค saamme tulosteen siinรค tapauksessa, ettรค Student-beanissa kรคytetรครคn param-parametrin asetettuja arvoja. Tรคssรค tapauksessa meillรค ei ole mitรครคn tulostetta, koska asetamme ja haemme vain param-parametrin arvoja, mutta emme tulosta niitรค mihinkรครคn.

jsp:body-toimintotunniste

  • Tรคtรค tunnistetta kรคytetรครคn XML:n dynaamiseen mรครคrittelyyn, jossa elementit voidaan luoda pyyntรถaikana eikรค kรครคnnรถsaikana.
  • Se mรครคrittelee XML:n, joka luodaan dynaamisesti elementtirunkona.

Syntaksi:

<jsp:body></jsp:body>

Tรคssรค kirjoitamme XML-body-tagin nรคiden tagien sisรครคn.

jsp:attribute-toimintotunniste

  • Tรคtรค tagia kรคytetรครคn XML:n dynaamiseen mรครคrittelyyn, jossa elementit voidaan luoda pyyntรถaikana kรครคnnรถsaikana.
  • Se mรครคrittelee XML:n attribuutin, joka luodaan dynaamisesti.

Syntaksi:

<jsp:attribute></jsp:attribute>

Tรคhรคn kirjoitetaan XML:n attribuuttitunniste.

Esimerkki rungosta ja attribuutista:

Action_jsp6.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Action Guru JSP6</title>
</head>
<body>
<jsp:element name="GuruXMLElement">
<jsp:attribute name="GuruXMLattribute">
Value
</jsp:attribute>
<jsp:body>Guru XML</jsp:body>
</jsp:element>
</body>
</html>

Koodin selitys:

Code Rivi 10: Tรคssรค mรครคrittelemme elementin, joka luodaan dynaamisesti muodossa XML, ja sen nimi tulee olemaan GuruXML-elementti.

Code Rivi 11โ€“13: Tรคssรค mรครคrittelemme attribuutin, joka on dynaamisesti luodun XML:n XML-attribuutti.

Code Rivi 14: Tรคssรค on body-toiminto, jossa kirjoitamme XML-rungon, joka luodaan dynaamisesti.

Kun suoritat yllรค olevan koodin, saat seuraavan tulosteen:

jsp:attribute

lรคhtรถ:

Tรคssรค saamme tulosteen luodun XML-tiedoston body-tunnisteesta.

jsp:text-toimintotunniste

  • Sitรค kรคytetรครคn mallipohjan tekstin lisรครคmiseen JSP-sivuille.
  • Sen runko ei sisรคllรค muita elementtejรค, ja se sisรคltรครค vain tekstiรค ja EL-lausekkeita.

Syntaksi:

<jsp:text>template text</jsp:text>

Tรคssรค mallipohjateksti viittaa vain mallipohjatekstiin (joka voi olla mitรค tahansa yleistรค tekstiรค, joka on tulostettava JSP:lle) tai mihin tahansa EL ilmaisu.

Esimerkiksi:

Action_jsp7.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Action JSP7</title>
</head>
<body>
<jsp:text>Guru Template Text</jsp:text>
</body>
</html>

Koodin selitys:

Code Rivi 10: Tรคssรค otamme tekstiobjektin tulostaaksemme mallitekstin.

Kun suoritat yllรค olevan koodin, saat seuraavan tulosteen.

jsp:teksti

lรคhtรถ:

Me saamme Guru Mallipohjateksti, joka sijoitetaan tekstitoiminto-objektin sisรครคn.

jsp:output-toimintotunniste

  • Se mรครคrittรครค JSP:n XML- tai DOCTYPE-mรครคrityksen.
  • XML-deklaraatio ja DOCTYPE deklaroidaan tulosteessa.

Syntaksi:

<jsp:output doctype-root-element="" doctype-system="">

Tรคssรค doctype-root-elementti ilmaisee XML-dokumentin juurielementin DOCTYPE-elementissรค. Doctype-system ilmaisee tulosteessa luodun doctypen, joka antaa system-literaalin.

Esimerkiksi:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Action Guru JSP8</title>
</head>
<body>
<jsp:output doctype-root-element="html PUBLIC" doctype-system="http://www.w3.org/TR/html4/loose.dtd"/>
</body>
</html>

Koodin selitys:

Code Rivi 10: Tรคssรค kรคytรคmme output-toiminto-objektia DOCTYPE-tyypin luomiseen, ja sisรคisesti se luodaan tรคssรค muodossa:

Tรคstรค ei tule nรคkyvรครค tulostetta, koska se luodaan sisรคisesti.

UKK

JSP Action Tagit ovat XML-tyylisiรค elementtejรค, jotka ohjaavat servlet-moottorin toimintaa pyyntรถjen kรคsittelyn aikana. Niiden avulla kehittรคjรคt voivat sisรคllyttรครค tiedostoja, vรคlittรครค pyyntรถjรค, kรคyttรครค JavaBeanit, upotetut sovelmat ja XML-tulosteen dynaaminen luonti JSP-sivun sisรคllรค.

Direktiivit kรคsitellรครคn kerran sivun kรครคnnรถsvaiheessa ja ne vaikuttavat sivun kokonaisrakenteeseen. Toimintotunnisteet arvioidaan uudelleen jokaisen pyynnรถn yhteydessรค, minkรค ansiosta ne soveltuvat dynaamiseen toimintaan, kuten sisรคllรถn sisรคllyttรคmiseen, pyyntรถjen edelleenlรคhettรคmiseen ja tyรถskentelyyn JavaPavut ajonaikana.

Kรคytรค jsp:include-metodia, kun sinun on yhdistettรคvรค sisรคltรถรค toiselta sivulta nykyiseen vastaukseen, kuten otsikoita tai alatunnisteita. Kรคytรค jsp:forward-metodia, kun hallinnan tulisi siirtyรค kokonaan toiselle resurssille eikรค nykyisen sivun tulisi tuottaa enรครค mitรครคn tulostetta.

jsp:useBean luo instanssin tai paikantaa JavaTietyssรค nรคkyvyysalueessa oleva papu. jsp:setProperty mรครคrittรครค papun ominaisuudelle arvon, ja jsp:getProperty lukee ominaisuuden arvon ja kirjoittaa sen merkkijonona vastaukseen, mikรค mahdollistaa esitystavan ja papun logiikan selkeรคn erottelun.

jsp:body ja jsp:attribute mรครคrittรคvรคt dynaamisten XML-elementtien rungot ja attribuutit. jsp:text kirjoittaa literaalimallipohjan tekstin ja EL-lausekkeet, ja jsp:output ohjaa XML-deklaraatiota eli DOCTYPE-arvoa, joka syntyy, kun JSP renderรถi vastauksensa.

Tekoรคly integroidaan JSP- ja JEE-sovelluksiin REST-kutsujen kautta malli-API-rajapintoihin, upotettuihin chat-avustajiin ja JSP-sivuilla renderรถityihin suosituswidgetteihin. Tekoรคly auttaa myรถs luomaan JSP-mallikoodia, ehdottamaan toimintotunnisteiden kรคyttรถรค ja validoimaan bean-kytkentรถjรค kehityksen aikana.

Kyllรค. Tekoรคlyllรค toimivat tyรถkalut analysoivat vanhaa JSP-koodia, tunnistavat toimintotunnisteiden kaavoja ja ehdottavat refaktorointia moderneille frameworkeille, kuten Spring MVC, Thymeleaf tai REST, sekรค yhden sivun sovellukselle. Ne luovat myรถs migraatiotestejรค, riippuvuusraportteja ja vaiheittaisia โ€‹โ€‹refaktorointisuunnitelmia.

Tiivistรค tรคmรค viesti seuraavasti: