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.

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.
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:
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.
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:
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.
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.





