Ak chcete do stránky začleniť externý súbor, máte tri možnosti, ktoré si ukážeme. Direktíva alebo akcia vám umožnia začleniť statický súbor, prípadne výsledok inej JSP stránky. No a nakoniec môžete do stránky vložiť aj applety.

Vkladanie súborov počas prekladu stránky (statické vkladanie)

Na vkladanie súborov počas prekladu stránky (typicky pri prvom prístupe) sa používa direktíva include. Jej syntax je nasledovná:

<%@ include file = ‚relativeURL‘ %>

Vložený súbor môže obsahovať kód JSP aj statické HTML. Môžete tak vytvárať znovu použiteľné navigačné lišty a podobne, teda veci, ktoré by sa museli objavovať na viacerých stránkach znovu. Menším problémom je, že ak sa zmení obsah vkladaného súboru, je treba zaktualizovať všetky stránky, ktoré ho používajú. Zaktualizovať znamená znova preložiť stránku a skompilovať ju. Lenže ako presvedčiť server, aby to urobil? Je nutné zmeniť dátum alebo čas poslednej modifikácie stránky. Najjednoduchšie je vložiť do stránky komentár s dátumom poslednej aktualizácie:

<%@ include file = ‚File.jsp‘ %>
<%– File.jsp zmenené 15.5.2002/12:35 –%>

V nasledujúcom príklade som vytvoril dva jednoduché súbory JspTest2.jsp a JspTest3.html, ktoré vložím do hlavného súboru JspTest1.jsp pomocou tagu include. Zdrojové kódy ukážok sú vám k dispozícii.

Súbor JspTest2.jsp:

<!DOCTYPE HTML PUBLIC ‚-//W3C//DTD HTML 4.01 Transitional//EN‘>
<html>
<head>
  <%@ page import=’java.util.Date‘ %>
  <%@ page import=’java.text.DateFormat‘ %>
</head>
<body>
  <%= DateFormat.getDateInstance().format(new Date())%>
  // vloží aktuálny dátum
</body>
</html>

Súbor JspTest3.html:

<!DOCTYPE HTML PUBLIC ‚-//W3C//DTD HTML 4.01 Transitional//EN‘>
<html><head></head>
<body>
  je správny deň na pohár whiskey.
  <!– toto je klasický html súbor –>
</body>
</html>

No a nakoniec hlavný súbor JspTest1.jsp, ktorý tie dva spojí:

<!DOCTYPE HTML PUBLIC ‚-//W3C//DTD HTML 4.01 Transitional//EN‘>
<html><head></head>
<body>
<%@ include file=’JspTest2.jsp’%> <%@ include file=’JspTest3.html’%>
</body>
</html>

Na tomto príklade vidíte, že pomocou direktívy include je možné vkladať aj *.jsp aj *.html súbory. Výsledkom volania stránky JspTest1.jsp by mohlo byť napríklad '9.8.2002 je správny deň na pohár whiskey.'

Vkladanie súborov v dobe požiadavky (dynamické vkladanie)

Direktíva include umožňuje vkladať súbory *.jsp aj *.html. Na druhej strane, ak sa zmení obsah vkladaného súboru, je nutné upraviť aj všetky ostatné, ktoré vkladajú daný súbor. Túto nevýhodu kompenzuje akcia jsp:include, ktorá vkladá súbor do stránky JSP až v dobe požiadavky na stránku.

Element jsp:include má povinné atribúty page (odkazuje na súbor) a flush.

<jsp:include page = ‚relativeURL‘ flush = ‚true‘ />

Parameter flush prikazuje stránke vyprázdniť výstupný buffer ešte pred vložením samotného súboru, pričom hodnota true je jediná možná. Do stránky môžete vložiť html, cgi skript, servlet alebo jsp stránku. Vkladané stránky zdieľajú request a session objekty spolu s hlavnou stránkou. Obmedzením tohto spôsobu vkladania súborov je, že nemôžete nastavovať pomocou implicitného objektu response hlavičku hlavného súboru.

Ak potrebujete vkladanej stránke predať nejaké parametre ešte pred samotným vložením, môžete to urobiť nasledovným spôsobom:

<jsp:include page=’somePage.jsp‘ flush=’true‘>
  <jsp:param name = ‚Name1′ value =’Data‘ />
  <jsp:param name = ‚Name2′ value ='<%= value %>‘ />
</jsp:include>

Vkladanie appletov do stránky

Na vloženie appletu do stránky je možné použiť element jsp:plugin. Má pomerne veľa parametrov, ale je nutné použiť aspoň tieto štyri:

<jsp:plugin type = ‚applet‘ code = ‚Applet.class‘
 width = ‚šírka‘ height = ‚výška’/>

Problematika appletov je podrobnejšie rozobraná napríklad v článkoch Java aplety na stránke a Komunikace JAVA appletu s HTML stránkou na Interval.cz.

Žádný příspěvek v diskuzi

Odpovědět