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: