[ Pobierz całość w formacie PDF ]
.WystÄ™puje także elemento nazwie zawartosc, oznaczajÄ…cy miejsce, w którym powinna zostać wyÅ›wietlona wÅ‚aÅ›ciwazawartość strony.Plik HTML, który zostanie wykorzystany do wygenerowania zawartoÅ›ci aplikacji NarzÄ™dziajest przedstawiony w przykÅ‚adzie 17.7.PrzykÅ‚ad 17.7.Plik zawartoÅ›ci aplikacji NarzÄ™dziaLista narzÄ™dziStrona głównaHostingMechanizmyLista narzÄ™dziLista narzÄ™dzi do tworzenia zawartoÅ›ciBez narzÄ™dzi, ludzie nie sÄ… niczym wiÄ™cej niż zwierzÄ™tami.I to dość sÅ‚abymi.Poniżejprzedstawiono listÄ™ opartych na serwletach narzÄ™dzi do tworzenia zawartoÅ›ci, któremożna wykorzystać w celu wzmocnienia siÄ™."JakaÅ› nazwa narzÄ™dzia(Nowość!)http://narzedzia.comTutaj komentarz na temat narzÄ™dzia.Inna nazwa narzÄ™dzia(Uaktualnienie!)http://narzedzia.comTu komentarz na temat tego narzÄ™dzia.Strona Główna Hosting Mechanizmy WÅ‚asność © 2000 Jason HunterWszystkie prawa zastrzeżone.Kontakt: webmaster@servlets.comPowyższy plik wyglÄ…da bardzo podobnie do szablonu, ale wartoÅ›ci obszarów zablokowanych zostaÅ‚ywymienione na realistyczne i wypeÅ‚niono obszar zawartoÅ›ci pewnymi prototypowymi rekordami.Oto sposóbwykorzystania tego pliku: programowo pobrane zostanÄ… jego kluczowe elementy (tytuÅ‚y, opis i prototypowyrekord), po czym zostanÄ… one skopiowane i umieszczone w pliku szablonu w celu utworzenia ostatecznej wersjistrony.Po co wykorzystywać dwa pliki? Czy nie jest możliwe po prostu bezpoÅ›rednie zmodyfikowanie plikuwidoknarz.html? Jest to możliwe, ale szablon wykorzystywany jest po to, by w przypadku przyszÅ‚egouaktualnienia nagłówka, paska bocznego lub stopki konieczne byÅ‚o uaktualnienie jedynie pliku szablon.html izmiana ta zostaÅ‚a uwidoczniona na wszystkich stronach.Innymi sÅ‚owy, szablon narzuca ogólny wyglÄ…d strony.Plik widoknarz.html jest wykorzystywany jedynie w kluczowych częściach.Pliki HTML sÄ… poddawane kompilacji XMLC przy pomocy poniższych poleceÅ„.MogÄ… wystÄ…pić ostrzeżenia,ponieważ HTML w nich zawarty nie jest prawidÅ‚owym XML:% xmlc class Szablon keep methods szablon.html% xmlc class WidokNarz keep methods widoknarz.htmlNastÄ™pnie można utworzyć serwlet który dziaÅ‚a jako klasa manipulacyjna.Jest on przedstawiony w przykÅ‚adzie17.8.PrzykÅ‚ad 17.8.Klasa manipulacyjna aplikacji NarzÄ™dziaimport java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;import org.w3c.dom.*;import org.w3c.dom.html.*;import org.enhydra.xml.io.DOMFormatter;public class WidokNarzSerwlet extends HttpServlet { private Narzedzie[] narzedzia;public void init() throws ServletException {// ZaÅ‚adowanie danych narzÄ™dzi w init w celu uproszczeniaString plikNarz = getInitParameter("plikNarz"); // z web.xmlif (plikNarz == null) {throw new ServletException("Plik danych narzÄ™dzi musi być okreÅ›lony jako parametr inicjacji plikNarz ");}log("Aadowanie narzÄ™dzi z " + plikNarz);try {narzedzia = Narzedzie.ladujNarzedzia(plikNarz);if (narzedzia.length == 0) {log("Nie odnaleziono narzÄ™dzi w " + plikNarz);}else {log(narzedzia.length + " narzÄ™dzi znaleziono w " + plikNarz);}}catch (Exception w) {throw new ServletException(w);}}public void doGet(HttpServletRequest zad, HttpServletResponse odp)throws ServletException, IOException {odp.setContentType("text/html");PrintWriter wyj = odp.getWriter();// Utworzenie drzewa DOM dla peÅ‚nego dokumentuSzablon szablon = new Szablon();// Utworzenie drzewa DOM przechowujÄ…cego wewnÄ™trznÄ… zawartośćWidokNarz widoknarz = new widokNarz();// Pobranie prototypowego rekordu narzÄ™dziaHTMLDivElement rekord = widoknarz.getElementRekord();// Pobranie odwoÅ‚ania do punktu wstawiania dla listy narzÄ™dziHTMLDivElement punktWstaw = szablon.getElementZawartosc();Node przodekWstaw = punktWstaw.getParentNode();// Ustawienie tytułów i opisu// UsuniÄ™cie danych z pliku widoknarz.htmlString tytul = ((Text)widoknarz.getElementTytul().getFirstChild()).getData(); String ttul2 = ((Text)widoknarz.getElementTytul2().getFirstChild()).getData();String opis = ((Text)widoknarz.getElementOpis().getFirstChild()).getData();szablon.setTitle(tytul); // tytuÅ‚ stronyszablon.setTextTytul(tytul); // element oznaczony tytultemplate.setTextTytul2(tytul2); // element oznaczony tytul2template.setTextOpis(opis); // element oznaczony opis// PÄ™tla nad narzÄ™dziami, dodanie nowego rekordu dla każdegofor (int i = 0; i
[ Pobierz całość w formacie PDF ]