Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00045 008668 10442587 na godz. na dobę w sumie
Java EE 6. Tworzenie aplikacji w NetBeans 7 - książka
Java EE 6. Tworzenie aplikacji w NetBeans 7 - książka
Autor: Liczba stron: 352
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-8936-1 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> j2ee - programowanie
Porównaj ceny (książka, ebook, audiobook).

Obowiązkowa wiedza każdego programisty!

Java EE to zbiór zaawansowanych technologii, pozwalających stworzyć nowoczesną aplikację o doskonałej architekturze. Jeżeli żądasz najwyższej wydajności, niezawodności, jakości oraz elastyczności, to Java EE jest prawdopodobnie najlepszym wyborem. Jeżeli chcesz się skupić na postawionym zadaniu i nie masz ochoty zmagać się z problemami z konfiguracją czy środowiskiem pracy, wybierz lidera wśród darmowych IDE. NetBeans zapewnia pełne wsparcie dla Javy EE, a praca z nim to czysta przyjemność.

W trakcie lektury tej wyjątkowej książki poznasz najlepsze techniki pracy z tym duetem. Zaznajomisz się z możliwościami Javy EE oraz przekonasz się, jak bardzo NetBeans może ułatwić Ci pracę. Na wstępie dowiesz się, jak zainstalować, dostosować do własnych potrzeb oraz przygotować do pracy środowisko NetBeans. Na kolejnych stronach zdobędziesz wiedzę związaną z serwletami, JSP oraz JSF. Ponadto nauczysz się korzystać z Java Persistence API oraz projektować i uruchamiać usługi sieciowe. Książka ta jest doskonałym źródłem wiedzy dla wszystkich programistów języka Java, chcących wykorzystać potencjał NetBeans w tworzeniu zaawansowanych aplikacji.

Dzięki tej książce:

Poznaj najlepsze techniki pracy z NetBeans!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Tytuł oryginału: Java EE 6 Development with NetBeans 7 Tłumaczenie: Tomasz Walczak ISBN: 978-83-246-8936-1 Copyright © 2011 Packt Publishing First published in the English language under the title ‘Java EE 6 Development with NetBeans’. © Helion 2014. All rights reserved. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie bierze jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Wydawnictwo HELION nie ponosi również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: http://helion.pl (księgarnia internetowa, katalog książek) Pliki z przykładami omawianymi w książce można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/jave6n.zip Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/jave6n Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Printed in Poland. • Kup książkę • Poleć książkę • Oceń książkę • Księgarnia internetowa • Lubię to! » Nasza społeczność Spis tre(cid:258)ci O autorze O recenzentach Przedmowa Rozdzia(cid:239) 1. Wprowadzenie do (cid:258)rodowiska NetBeans Wprowadzenie Pobieranie (cid:258)rodowiska NetBeans Instalowanie (cid:258)rodowiska NetBeans Pierwsze uruchomienie (cid:258)rodowiska NetBeans Konfigurowanie (cid:258)rodowiska NetBeans pod k(cid:200)tem programowania w Javie EE Instalowanie pierwszej aplikacji Wskazówki dotycz(cid:200)ce wydajnego programowania w (cid:258)rodowisku NetBeans Podsumowanie Rozdzia(cid:239) 2. Tworzenie aplikacji sieciowych z wykorzystaniem serwletów i technologii JSP Tworzenie pierwszej aplikacji Programowanie serwletów Zabezpieczanie aplikacji sieciowych Fragmenty JSP Podsumowanie Rozdzia(cid:239) 3. Wzbogacanie stron JSP za pomoc(cid:200) biblioteki JSTL i niestandardowych znaczników Podstawowe znaczniki JSTL SQL-owe znaczniki JSTL Modyfikowanie danych w bazie za pomoc(cid:200) znacznika sql:update Ostatnie uwagi na temat biblioteki JSTL Niestandardowe znaczniki JSP Podsumowanie 7 9 11 15 15 16 19 26 27 35 38 49 51 52 72 81 93 96 97 98 107 114 122 122 129 Kup książkęPoleć książkę Spis tre(cid:286)ci Rozdzia(cid:239) 4. Tworzenie aplikacji sieciowych z wykorzystaniem platformy JavaServer Faces 2.0 Wprowadzenie do platformy JSF Tworzenie pierwszej aplikacji JSF Tworzenie szablonów faceletów Komponenty z(cid:239)o(cid:285)one Podsumowanie Rozdzia(cid:239) 5. Tworzenie eleganckich aplikacji sieciowych z wykorzystaniem biblioteki PrimeFaces Pierwszy projekt utworzony z wykorzystaniem biblioteki PrimeFaces Stosowanie komponentów PrimeFaces w aplikacjach JSF Widoki z zak(cid:239)adkami Interfejsy oparte na kreatorze Dodatkowe informacje Podsumowanie Rozdzia(cid:239) 6. Interakcja z bazami danych za pomoc(cid:200) interfejsu Java Persistence API Tworzenie pierwszej encji JPA Automatyczne generowanie encji JPA Relacje mi(cid:218)dzy encjami Generowanie aplikacji JSP na podstawie encji JPA Podsumowanie Rozdzia(cid:239) 7. Implementowanie warstwy biznesowej za pomoc(cid:200) ziaren sesyjnych Wprowadzenie do ziaren sesyjnych Tworzenie ziaren sesyjnych w (cid:258)rodowisku NetBeans Dost(cid:218)p do ziarna z poziomu klienta Zarz(cid:200)dzanie transakcjami w ziarnach sesyjnych Programowanie aspektowe z wykorzystaniem interceptorów Us(cid:239)ugi zegara w ziarnach EJB Generowanie ziaren sesyjnych na podstawie encji JPA Podsumowanie Rozdzia(cid:239) 8. Interfejs API CDI Wprowadzenie do CDI Kwalifikatory Stereotypy Typy do wi(cid:200)zania interceptorów Podsumowanie 131 132 132 152 159 164 165 165 169 173 178 183 183 185 186 200 209 215 221 223 224 224 233 238 239 242 244 248 249 249 256 260 263 267 4 Kup książkęPoleć książkę Spis tre(cid:286)ci Rozdzia(cid:239) 9. Przesy(cid:239)anie komunikatów za pomoc(cid:200) us(cid:239)ug JMS i ziaren sterowanych komunikatami Wprowadzenie do interfejsu JMS Tworzenie projektu i zasobów JMS Przetwarzanie komunikatów JMS za pomoc(cid:200) ziaren sterowanych komunikatami Podsumowanie Rozdzia(cid:239) 10. Us(cid:239)ugi sieciowe SOAP oparte na interfejsie JAX-WS Wprowadzenie do us(cid:239)ug sieciowych Tworzenie prostej us(cid:239)ugi sieciowej Udost(cid:218)pnianie ziaren EJB jako us(cid:239)ug sieciowych Podsumowanie Rozdzia(cid:239) 11. Us(cid:239)ugi sieciowe RESTful oparte na interfejsie JAX-RS Generowanie us(cid:239)ug sieciowych typu RESTful na podstawie istniej(cid:200)cej bazy danych Testowanie us(cid:239)ug sieciowych typu RESTful Tworzenie klienta us(cid:239)ug sieciowych typu RESTful Podsumowanie Dodatek A. Debugowanie aplikacji dla firm za pomoc(cid:200) debugera (cid:258)rodowiska NetBeans Debugowanie aplikacji dla firm Podsumowanie Dodatek B. Wykrywanie problemów z wydajno(cid:258)ci(cid:200) za pomoc(cid:200) profilera (cid:258)rodowiska NetBeans Profilowanie aplikacji Podsumowanie Skorowidz 269 270 271 280 283 285 285 286 298 305 307 308 314 319 325 327 327 333 335 335 339 341 5 Kup książkęPoleć książkę Spis tre(cid:286)ci 6 Kup książkęPoleć książkę 5 Tworzenie eleganckich aplikacji sieciowych z wykorzystaniem biblioteki PrimeFaces Jedn(cid:200) z zalet platformy JSF jest to, (cid:285)e umo(cid:285)liwia bardzo (cid:239)atwe tworzenie niestandardowych komponentów. Dlatego powsta(cid:239)o kilka bibliotek komponentów o otwartym dost(cid:218)pie do kodu (cid:283)ród(cid:239)owego. Jedn(cid:200) z nich jest biblioteka PrimeFaces. Umo(cid:285)liwia ona (cid:239)atwe tworzenie ele- ganckich aplikacji sieciowych. W wersji 7.0 (cid:258)rodowiska NetBeans dost(cid:218)pna jest wbudowana biblioteka PrimeFaces. Pierwszy projekt utworzony z wykorzystaniem biblioteki PrimeFaces Aby zastosowa(cid:202) bibliotek(cid:218) PrimeFaces w projekcie, trzeba w standardowy sposób utworzy(cid:202) aplikacj(cid:218) sieciow(cid:200) w Javie. Gdy wybierzesz platform(cid:218) JavaServer Faces, kliknij zak(cid:239)adk(cid:218) Com- ponents, a nast(cid:218)pnie wybierz pozycj(cid:218) PrimeFaces 2.2.1 jako pakiet komponentów (rysunek 5.1). Kup książkęPoleć książkę Java EE 6. Tworzenie aplikacji w NetBeans 7 Rysunek 5.1. Tworzenie aplikacji z bibliotek(cid:200) PrimeFaces Po utworzeniu projektu (cid:258)rodowisko NetBeans doda potrzebne biblioteki. Na stronach JSF dost(cid:218)pny wtedy b(cid:218)dzie mechanizm automatycznego uzupe(cid:239)niania projektu dla znaczników biblioteki PrimeFaces. Je(cid:258)li wybierzesz PrimeFaces jako pakiet komponentów dla projektu JSF, (cid:258)rodowisko NetBeans utworzy przyk(cid:239)adowy projekt u(cid:285)ywaj(cid:200)cy komponentów PrimeFaces. Kod wygenerowanego pliku wygl(cid:200)da tak: ?xml version= 1.0 encoding= UTF-8 ? !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd html xmlns= http://www.w3.org/1999/xhtml xmlns:p= http://primefaces.prime.com.tr/ui xmlns:h= http://java.sun.com/jsf/html h:head title Facelet Title /title /h:head h:body h:form p:commandButton value= Hello from PrimeFaces onclick= dlg1.show(); type= button / p:dialog header= PrimeFaces Dialog widgetVar= dlg1 width= 500 For more information visit a href= http://primefaces. 166 Kup książkęPoleć książkę Rozdzia(cid:225) 5. • Tworzenie eleganckich aplikacji sieciowych org http://primefaces.org /a . /p:dialog /h:form /h:body /html Strona ta wygl(cid:200)da prawie jak zwyk(cid:239)a strona faceletu. Wyj(cid:200)tkiem jest kilka komponentów cha- rakterystycznych dla biblioteki PrimeFaces. Zwró(cid:202) uwag(cid:218) na to, (cid:285)e przestrze(cid:241) nazw biblioteki PrimeFaces (xmlns:p= http://primefaces. (cid:180)prime.com.tr/ui ) jest automatycznie dodawana do znacznika html . Ta przestrze(cid:241) nazw jest niezb(cid:218)dna do stosowania komponentów PrimeFaces na stronach. Zgodnie z konwencj(cid:200) znaczniki PrimeFaces maj(cid:200) przedrostek p. Pierwszy komponent PrimeFaces na przedstawionej stronie to p:commandButton . Jest on podobny do standardowego komponentu przycisku polecenia JSF, jednak ma pewne dodatkowe zalety (na przyk(cid:239)ad wygl(cid:200)da elegancko bez konieczno(cid:258)ci r(cid:218)cznego dodawania arkusza stylów CSS). Inny komponent PrimeFaces na przyk(cid:239)adowej stronie to p:dialog . Komponent ten jest wy- (cid:258)wietlany jako okno dialogowe, które mo(cid:285)e znajdowa(cid:202) si(cid:218) nad innymi komponentami strony. Za pomoc(cid:200) warto(cid:258)ci atrybutu widgetVer mo(cid:285)na uzyska(cid:202) dost(cid:218)p do tego komponentu w innych komponentach ze strony. Okno dialogowe udost(cid:218)pnia w tym celu dzia(cid:239)aj(cid:200)cy po stronie klienta interfejs API JavaScriptu. Najcz(cid:218)(cid:258)ciej u(cid:285)ywane funkcje tego interfejsu API to show() i hide(). S(cid:239)u(cid:285)(cid:200) one do wy(cid:258)wietlania i ukrywania okna dialogowego na stronie. Ten interfejs API wykorzy- stano w atrybucie onclick wspomnianego wcze(cid:258)niej przycisku polecenia. Gdy uruchomisz aplikacj(cid:218), zobaczysz automatycznie wygenerowan(cid:200) stron(cid:218) (rysunek 5.2). Rysunek 5.2. Automatycznie wygenerowana strona Po klikni(cid:218)ciu przycisku pojawi si(cid:218) okno dialogowe (rysunek 5.3). 167 Kup książkęPoleć książkę Java EE 6. Tworzenie aplikacji w NetBeans 7 Rysunek 5.3. Okno dialogowe wy(cid:258)wietlane w odpowiedzi na klikni(cid:218)cie przycisku Gdy klikniesz odno(cid:258)nik w oknie dialogowym, przejdziesz do witryny biblioteki PrimeFaces (rysunek 5.4). Rysunek 5.4. Witryna po(cid:258)wi(cid:218)cona bibliotece PrimeFaces Jak wida(cid:202), biblioteka PrimeFaces umo(cid:285)liwia tworzenie eleganckich aplikacji sieciowych ma(cid:239)ym nak(cid:239)adem si(cid:239). Dalej zobaczysz, jak wykorzysta(cid:202) niektóre komponenty PrimeFaces, aby znacznie u(cid:239)atwi(cid:202) i upro(cid:258)ci(cid:202) proces tworzenia aplikacji sieciowych. 168 Kup książkęPoleć książkę Rozdzia(cid:225) 5. • Tworzenie eleganckich aplikacji sieciowych Stosowanie komponentów PrimeFaces w aplikacjach JSF Z tego podrozdzia(cid:239)u dowiesz si(cid:218), jak stosowa(cid:202) proste komponenty PrimeFaces, aby u(cid:239)atwi(cid:202) sobie prac(cid:218) nad tworzeniem aplikacji JSF. Poni(cid:285)ej znajduje si(cid:218) kod prostej strony do wprowa- dzania danych na temat klientów: ?xml version= 1.0 encoding= UTF-8 ? !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd html xmlns= http://www.w3.org/1999/xhtml xmlns:p= http://primefaces.prime.com.tr/ui xmlns:h= http://java.sun.com/jsf/html xmlns:ui= http://java.sun.com/jsf/facelets ui:composition template= ./template.xhtml ui:define name= top h2 Wprowadzanie danych o klientach /h2 /ui:define ui:define name= content h:form p:messages/ p:panel header= Wprowadzanie danych h:panelGrid columns= 2 h:outputLabel for= firstName value= Imi(cid:218) styleClass= requiredLbl / h:inputText id= firstName label= Imi(cid:218) value= #{customer.firstName} required= true / h:outputLabel for= middleName value= Drugie imi(cid:218) styleClass= optionalLbl / h:inputText id= middleName label= Drugie imi(cid:218) value= #{customer.middleName} / h:outputLabel for= lastName value= Nazwisko styleClass= requiredLbl / h:inputText id= lastName label= Nazwisko value= #{customer.lastName} required= true / h:outputLabel for= birthDate value= Data urodzenia styleClass= optionalLbl / p:calendar id= birthDate value= #{customer.birthDate} showOn= button inputStyle= width:100px; navigator= true / h:panelGroup/ 169 Kup książkęPoleć książkę Java EE 6. Tworzenie aplikacji w NetBeans 7 p:commandButton value= Prze(cid:258)lij action= #{customerController. saveCustomer} ajax= false / /h:panelGrid /p:panel /h:form /ui:define /ui:composition /html W przyk(cid:239)adzie wykorzystano dost(cid:218)pny w (cid:258)rodowisku NetBeans mechanizm generowania szablonów fa- celetu. Dzi(cid:218)ki temu mo(cid:285)na „za darmo” uzyska(cid:202) bardzo ciekawe style CSS. Wi(cid:218)cej informacji o szablonach faceletów w (cid:258)rodowisku NetBeans znajdziesz w poprzednim rozdziale. Gdy uruchomisz projekt, przedstawiony kod zostanie wy(cid:258)wietlony w przegl(cid:200)darce tak jak na rysunku 5.5. Rysunek 5.5. Strona do wprowadzania danych w przegl(cid:200)darce Pierwszy nowy komponent PrimeFaces zastosowany na tej stronie to p:messages . Mo(cid:285)na go wykorzysta(cid:202) jako zamiennik standardowego komponentu JSF h:messages . Zalet(cid:200) znacznika p:messages w porównaniu ze znacznikiem h:messages jest to, (cid:285)e komunikaty o b(cid:239)(cid:218)dach w znaczniku p:messages s(cid:200) domy(cid:258)lnie formatowane w elegancki sposób (rysunek 5.6). 170 Kup książkęPoleć książkę Rozdzia(cid:225) 5. • Tworzenie eleganckich aplikacji sieciowych Rysunek 5.6. Sformatowane komunikaty o b(cid:239)(cid:218)dach w znaczniku p:messages Podobnie jak w przypadku komponentu p:messages , biblioteka PrimeFaces udost(cid:218)pnia kom- ponent p:message , który mo(cid:285)na potraktowa(cid:202) jako zamiennik standardowego komponentu JSF h:message (w przyk(cid:239)adzie nie zastosowano komponentu p:message ). Znacznik p:message , podobnie jak h:message , nale(cid:285)y stosowa(cid:202) do wy(cid:258)wietlania b(cid:239)(cid:218)dów zwi(cid:200)zanych ze sprawdza- niem poprawno(cid:258)ci obok pól z nieprawid(cid:239)owymi danymi, a nie w górnej cz(cid:218)(cid:258)ci strony. Inny komponent PrimeFaces wykorzystany w przyk(cid:239)adzie to p:calendar . Kalendarz ten mo(cid:285)- na wykorzysta(cid:202) do wprowadzania dat. Gdy u(cid:285)ytkownik kliknie ikon(cid:218) wygenerowan(cid:200) dla tego komponentu, pojawi si(cid:218) atrakcyjny wid(cid:285)et z kalendarzem (rysunek 5.7). U(cid:285)ytkownik mo(cid:285)e w nim wybra(cid:202) dat(cid:218), klikaj(cid:200)c j(cid:200). Komponent kalendarza biblioteki PrimeFaces mo(cid:285)na w szerokim zakresie modyfikowa(cid:202). Do- my(cid:258)lnie jest wy(cid:258)wietlany jako pole tekstowe, a gdy u(cid:285)ytkownik je kliknie, pojawia si(cid:218) wid(cid:285)et z kalendarzem. W przyk(cid:239)adzie atrybut showOn ma warto(cid:258)(cid:202) button. To powoduje, (cid:285)e obok pola tekstowego widoczna jest ikona kalendarza. Jest to wizualna wskazówka informuj(cid:200)ca o spe- cjalnym charakterze pola. Pozwala to tak(cid:285)e wprowadzi(cid:202) dat(cid:218) r(cid:218)cznie, je(cid:258)li u(cid:285)ytkownik woli za- stosowa(cid:202) to podej(cid:258)cie. Domy(cid:258)lnie listy miesi(cid:218)cy i lat s(cid:200) niedost(cid:218)pne, co utrudnia wprowadzanie dat z odleg(cid:239)ej prze- sz(cid:239)o(cid:258)ci i przysz(cid:239)o(cid:258)ci (domy(cid:258)lnym dniem jest zawsze dzie(cid:241) bie(cid:285)(cid:200)cy). Aby rozwi(cid:200)za(cid:202) ten pro- blem, mo(cid:285)na ustawi(cid:202) w(cid:239)a(cid:258)ciwo(cid:258)(cid:202) navigator na true, jak zrobiono w przyk(cid:239)adowym kodzie. Ponadto mo(cid:285)na kontrolowa(cid:202) wygl(cid:200)d pola tekstowego. Umo(cid:285)liwiaj(cid:200) to atrybuty inputStyle i inputStyleClass komponentu p:calendar . Warto(cid:258)ci(cid:200) atrybutu inputStyle musi by(cid:202) po- prawny wewn(cid:200)trzwierszowy kod CSS, natomiast w atrybucie inputStyleClass trzeba poda(cid:202) nazw(cid:218) klasy CSS zdefiniowanej w jednym z arkuszy stylów CSS. 171 Kup książkęPoleć książkę Java EE 6. Tworzenie aplikacji w NetBeans 7 Rysunek 5.7. Komponent kalendarza umo(cid:285)liwia wybranie daty Ostatnim nowym komponentem PrimeFaces u(cid:285)ytym na przyk(cid:239)adowej stronie jest p:command (cid:180)Button . Domy(cid:258)lnie wy(cid:258)wietla on przycisk, który zg(cid:239)asza ajaksowe (cid:285)(cid:200)danie aktualizacji cz(cid:218)- (cid:258)ci strony. Nie jest wtedy konieczne od(cid:258)wie(cid:285)anie ca(cid:239)ej strony. Komponent ten mo(cid:285)na wyko- rzysta(cid:202) jako zamiennik standardowego komponentu JSF h:commandButton . W tym celu w(cid:239)a- (cid:258)ciwo(cid:258)(cid:202) ajax nale(cid:285)y ustawi(cid:202) na false, tak jak w przyk(cid:239)adowym kodzie. Zalet(cid:200) stosowania komponentu p:commandButton zamiast h:commandButton jest to, (cid:285)e ma on domy(cid:258)lnie ele- gancki wygl(cid:200)d. Dzi(cid:218)ki temu nie trzeba tworzy(cid:202) niestandardowych stylów CSS dla przycisków. Gdy klikniesz przycisk na przyk(cid:239)adowej stronie, przejdziesz do strony z potwierdzeniem (ry- sunek 5.8). Rysunek 5.8. Strona z potwierdzeniem 172 Kup książkęPoleć książkę Rozdzia(cid:225) 5. • Tworzenie eleganckich aplikacji sieciowych Na stronie z potwierdzeniem nie ma (cid:285)adnych nowych komponentów PrimeFaces, dlatego strona ta nie wymaga omówienia. Znajdziesz j(cid:200) w dost(cid:218)pnym do pobrania kodzie dla tego rozdzia(cid:239)u (plik confirmation.xhtml). Widoki z zak(cid:239)adkami W formularzach HTML cz(cid:218)sto znajduje si(cid:218) du(cid:285)o pól, przez co formularze mog(cid:200) by(cid:202) bardzo d(cid:239)ugie. Programi(cid:258)ci nieraz dziel(cid:200) formularze na zak(cid:239)adki, dzi(cid:218)ki czemu strona jest mniej przyt(cid:239)aczaj(cid:200)ca dla u(cid:285)ytkowników. Zwykle tworzenie stron z zak(cid:239)adkami wymaga stosowania sztuczek z j(cid:218)zyków HTML i JavaScript. Jednak biblioteka PrimeFaces udost(cid:218)pnia komponent p:tabView , który mo(cid:285)na wykorzysta(cid:202) do (cid:239)atwego generowania zak(cid:239)adek. W poni(cid:285)szym przy- k(cid:239)adzie pokazano, jak korzysta(cid:202) z tego komponentu. ?xml version= 1.0 encoding= UTF-8 ? !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd html xmlns= http://www.w3.org/1999/xhtml xmlns:p= http://primefaces.prime.com.tr/ui xmlns:h= http://java.sun.com/jsf/html xmlns:ui= http://java.sun.com/jsf/facelets xmlns:f= http://java.sun.com/jsf/core ui:composition template= ./template.xhtml ui:define name= top h2 Wprowadzanie danych o klientach /h2 /ui:define ui:define name= content h:form p:messages/ h:panelGrid columns= 1 style= width: 100 p:tabView p:tab title= Dane osobowe h:panelGrid columns= 2 h:outputLabel for= firstName value= Imi(cid:218) styleClass= requiredLbl / h:inputText id= firstName label= Imi(cid:218) value= #{customer. firstName} required= true / h:outputLabel for= middleName value= Drugie imi(cid:218) styleClass= optionalLbl / h:inputText id= middleName label= Drugie imi(cid:218) value= #{customer. middleName} / 173 Kup książkęPoleć książkę Java EE 6. Tworzenie aplikacji w NetBeans 7 h:outputLabel for= lastName value= Nazwisko styleClass= requiredLbl / h:inputText id= lastName label= Nazwisko value= #{customer. lastName} required= true / h:outputLabel for= birthDate value= Data urodzenia styleClass= optionalLbl / p:calendar id= birthDate value= #{customer. birthDate} showOn= button inputStyle= width:100px; navigator= true / /h:panelGrid /p:tab p:tab title= Adres h:panelGrid columns= 2 h:outputLabel for= line1 value= Wiersz 1. styleClass= requiredLbl / h:inputText id= line1 value= #{customer. addrLine1} required= true / h:outputLabel for= line2 value= Wiersz 2. styleClass= optionalLbl / h:inputText id= line2 value= #{customer. addrLine2} / h:outputLabel for= city value= Miasto styleClass= requiredLbl / h:inputText id= city value= #{customer. addrCity} required= true / h:outputLabel for= state value= Województwo styleClass= requiredLbl / h:selectOneMenu id= state required= true value= #{customer.addrState} f:selectItem itemValue= itemLabel= / f:selectItem itemValue= LB itemLabel= Lubelskie / f:selectItem itemValue= MZ itemLabel= Mazowieckie / 174 Kup książkęPoleć książkę Rozdzia(cid:225) 5. • Tworzenie eleganckich aplikacji sieciowych f:selectItem itemValue= OP itemLabel= Opolskie / f:selectItem itemValue= PM itemLabel= Pomorskie / !-- Z uwagi na zwi(cid:266)z(cid:225)o(cid:286)(cid:252) przyk(cid:225)adu pozosta(cid:225)e województwa zosta(cid:225)y pomini(cid:266)te -- /h:selectOneMenu h:outputLabel for= zip value= Kod styleClass= requiredLbl / h:inputText id= zip value= #{customer. addrZip} required= true / /h:panelGrid /p:tab p:tab title= Numery telefonu h:panelGrid columns= 2 h:outputLabel for= homePhone value= Domowy / p:inputMask id= homePhone mask= (999)-999-999 value= #{customer. homePhone} size= 12 styleClass= optionalLbl / h:outputLabel for= mobilePhone value= Komórkowy / p:inputMask id= mobilePhone mask= (999)-999-999 value= #{customer. mobilePhone} size= 12 styleClass= optionalLbl / h:outputLabel for= workPhone value= S(cid:239)u(cid:285)bowy / p:inputMask id= workPhone mask= (999)-999-999 value= #{customer. workPhone} size= 12 styleClass= optionalLbl / /h:panelGrid /p:tab /p:tabView p:commandButton value= Prze(cid:258)lij action= #{customerController.saveCustomer} ajax= false / /h:panelGrid 175 Kup książkęPoleć książkę Java EE 6. Tworzenie aplikacji w NetBeans 7 /h:form /ui:define /ui:composition /html Jak wida(cid:202) w tym przyk(cid:239)adzie, nadrz(cid:218)dnym komponentem interfejsu z zak(cid:239)adkami jest p:tabView . Wewn(cid:200)trz niego trzeba umie(cid:258)ci(cid:202) jeden lub kilka komponentów p:tab . Ka(cid:285)dy komponent p:tab zawiera tu pola na dane wej(cid:258)ciowe. Pola te pojawiaj(cid:200) si(cid:218) w odpowiednich zak(cid:239)adkach. Komponent p:tab ma atrybut title, którego warto(cid:258)(cid:202) jest wy(cid:258)wietlana jako nag(cid:239)ówek za- k(cid:239)adki. Gdy uruchomisz projekt, zobaczysz, jak dzia(cid:239)a komponent zak(cid:239)adki (rysunek 5.9). Rysunek 5.9. Zak(cid:239)adki na stronie Po klikni(cid:218)ciu poszczególnych zak(cid:239)adek zobaczysz umieszczone na nich komponenty (rysunek 5.10). Uwa(cid:285)ni Czytelnicy zapewne zauwa(cid:285)yli, (cid:285)e w trzeciej zak(cid:239)adce pojawi(cid:239) si(cid:218) nowy komponent PrimeFaces — p:inputMask . Pozwala on uniemo(cid:285)liwi(cid:202) u(cid:285)ytkownikom wprowadzenie (cid:283)le sformatowanych danych. Tu komponent ten wykorzystano dla ka(cid:285)dego pola na numer telefonu. Dzia(cid:239)anie tego komponentu przedstawia rysunek 5.11. Jak wida(cid:202) na rysunku, gdy u(cid:285)ytkownik kliknie komponent inputMask, automatycznie wy(cid:258)wie- tlany jest oczekiwany format. U(cid:285)ytkownik musi tylko uzupe(cid:239)ni(cid:202) puste miejsca, aby dane by(cid:239)y poprawnie sformatowane. Tu oczekiwany jest numer telefonu w formacie (xxx)xxx-xxx, gdzie x to cyfra w systemie dziesi(cid:218)tnym. Przy definiowaniu masek cyfra 9 reprezentuje dowoln(cid:200) cyfr(cid:218), litera a reprezentuje dowoln(cid:200) liter(cid:218), a gwiazdka (*) — dowoln(cid:200) cyfr(cid:218) lub liter(cid:218). 176 Kup książkęPoleć książkę Rozdzia(cid:225) 5. • Tworzenie eleganckich aplikacji sieciowych Rysunek 5.10. Komponenty z zak(cid:239)adki Adres Rysunek 5.11. Dzia(cid:239)anie komponentu p:inputMask Tu w celu formatowania danych przypisano do atrybutu mask komponentu p:inputMask warto(cid:258)(cid:202) (999)-999-999, co pozwoli(cid:239)o uzyska(cid:202) po(cid:285)(cid:200)dan(cid:200) mask(cid:218). Komponent p:inputMask pozwala wi(cid:218)c wymusza(cid:202) poprawne formatowanie danych bez sto- sowania walidatorów JSF. 177 Kup książkęPoleć książkę Java EE 6. Tworzenie aplikacji w NetBeans 7 Pora wróci(cid:202) do omawiania zak(cid:239)adek. Gdy u(cid:285)ytkownik kliknie widoczny w dolnej cz(cid:218)(cid:258)ci strony przycisk Prze(cid:258)lij, dane z wszystkich zak(cid:239)adek zostan(cid:200) przes(cid:239)ane i potraktowane jak informacje z jednego znacznika h:form . Od tego momentu dzia(cid:239)a standardowy dla JSF proces przetwa- rzania (cid:285)(cid:200)da(cid:241). Interfejsy oparte na kreatorze Inn(cid:200) (obok zak(cid:239)adek) popularn(cid:200) technik(cid:200) dzielenia d(cid:239)ugich formularzy jest stosowanie kreatorów. S(cid:200) one przydatne, gdy u(cid:285)ytkownik musi uzupe(cid:239)ni(cid:202) pola w okre(cid:258)lonej kolejno(cid:258)ci. W poprzed- nim przyk(cid:239)adzie nie mo(cid:285)na wymusi(cid:202) na u(cid:285)ytkowniku wprowadzenia adresu przed podaniem numeru telefonu. Dlatego nie mo(cid:285)na sprawdzi(cid:202), czy wprowadzone numery pasuj(cid:200) do miejsca zamieszkania podanego w adresie. Aby rozwi(cid:200)za(cid:202) ten problem, mo(cid:285)na wykorzysta(cid:202) interfejs oparty na kreatorze. Po(cid:285)(cid:200)dany efekt mo(cid:285)na (cid:239)atwo uzyska(cid:202) za pomoc(cid:200) komponentu PrimeFaces p:wizard . Poni(cid:285)ej pokazano, jak zastosowa(cid:202) ten komponent. ?xml version= 1.0 encoding= UTF-8 ? !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd html xmlns= http://www.w3.org/1999/xhtml xmlns:p= http://primefaces.prime.com.tr/ui xmlns:h= http://java.sun.com/jsf/html xmlns:ui= http://java.sun.com/jsf/facelets xmlns:f= http://java.sun.com/jsf/core ui:composition template= ./template.xhtml ui:define name= top h2 Wprowadzanie danych o u(cid:285)ytkownikach /h2 /ui:define ui:define name= content h:form h:panelGrid columns= 1 style= width: 100 p:wizard p:tab title= Dane osobowe id= personalInfo p:panel header= Dane osobowe p:messages/ h:panelGrid columns= 2 h:outputLabel for= firstName value= Imi(cid:218) styleClass= requiredLbl / h:inputText id= firstName label= Imi(cid:218) value= #{customer. firstName} required= true / 178 Kup książkęPoleć książkę Rozdzia(cid:225) 5. • Tworzenie eleganckich aplikacji sieciowych h:outputLabel for= middleName value= Drugie imi(cid:218) styleClass= optionalLbl / h:inputText id= middleName label= Drugie imi(cid:218) value= #{customer. middleName} / h:outputLabel for= lastName value= Nazwisko styleClass= requiredLbl / h:inputText id= lastName label= Nazwisko value= #{customer. lastName} required= true / h:outputLabel for= birthDate value= Data urodzenia styleClass= optionalLbl / p:calendar id= birthDate value= #{customer. birthDate} showOn= button inputStyle= width:100px; navigator= true / /h:panelGrid /p:panel /p:tab !-- Zak(cid:225)adk(cid:266) z numerami telefonów pomini(cid:266)to z uwagi na zwi(cid:266)z(cid:225)o(cid:286)(cid:252) przyk(cid:225)adu -- p:tab title= Potwierdzenie id= confirmation p:messages/ h:panelGrid columns= 2 h:outputText value= Imi(cid:218) styleClass= optionalLbl / h:outputText id= firstNameTxt value= #{customer. firstName} / h:outputText value= Drugie imi(cid:218) styleClass= optionalLbl / h:outputText id= middleNameTxt value= #{customer. middleName} / h:outputText value= Nazwisko styleClass= optionalLbl / h:outputText id= lastNameTxt value= #{customer. lastName} / h:outputText value= Data urodzenia styleClass= optionalLbl / 179 Kup książkęPoleć książkę Java EE 6. Tworzenie aplikacji w NetBeans 7 h:outputText id= birthDateTxt value= #{customer. formattedBirthDate} / h:outputText value= Telefon domowy styleClass= optionalLbl / h:outputText id= homePhoneTxt value= #{customer. homePhone} / h:outputText value= Telefon komórkowy styleClass= optionalLbl / h:outputText id= mobilePhoneTxt value= #{customer. mobilePhone} / h:outputText value= Telefon s(cid:239)u(cid:285)bowy styleClass= optionalLbl / h:outputText id= workPhoneTxt value= #{customer. workPhone} / h:panelGroup/ h:inputHidden value= #{customer. addrState} / p:commandButton id= submitButton value= Prze(cid:258)lij actionListener= #{customerController.saveCustomer} ajax= false / /h:panelGrid /p:tab /p:wizard /h:panelGrid /h:form /ui:define /ui:composition /html Niektóre strony („zak(cid:239)adki”) kreatora zosta(cid:239)y pomini(cid:218)te w kodzie z uwagi na konieczno(cid:258)(cid:202) zachowania zwi(cid:218)- z(cid:239)o(cid:258)ci tego przyk(cid:239)adu. Kompletn(cid:200) wersj(cid:218) znajdziesz w dost(cid:218)pnym do pobrania kodzie do tego rozdzia(cid:239)u. Jak wida(cid:202), biblioteka PrimeFaces sprawia, (cid:285)e generowanie interfejsów opartych na kreatorze jest proste. Wystarczy zastosowa(cid:202) komponent p:wizard , a nast(cid:218)pnie doda(cid:202) komponent p:tab dla ka(cid:285)dego etapu kreatora. W ka(cid:285)dym komponencie p:tab mo(cid:285)na umie(cid:258)ci(cid:202) standardowy kod JSF. W ostatniej zak(cid:239)adce znajduje si(cid:218) komponent p:commandButton s(cid:239)u(cid:285)(cid:200)cy do przesy(cid:239)ania da- nych na serwer. Warto(cid:258)(cid:202) atrybutu actionListener tego komponentu to metoda z ziarna zarz(cid:200)- dzanego CustomerController. 180 Kup książkęPoleć książkę Rozdzia(cid:225) 5. • Tworzenie eleganckich aplikacji sieciowych package com.ensode.primefacesdemo.managedbeans; import java.io.Serializable; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; import javax.faces.event.ActionEvent; import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; @ManagedBean @SessionScoped public class CustomerController implements Serializable { /** Tworzy nowy obiekt typu CustomerController */ public CustomerController() { } public void saveCustomer(ActionEvent actionEvent) { // W rzeczywistej aplikacji nale(cid:298)a(cid:225)oby zapisa(cid:252) dane. // W tym przyk(cid:225)adzie kod tylko wy(cid:286)wietla komunikat. FacesMessage facesMessage = new FacesMessage( Dane zosta(cid:239)y zapisane ); facesMessage.setSeverity(FacesMessage.SEVERITY_INFO); FacesContext.getCurrentInstance().addMessage(null, facesMessage); } } Metoda saveCustomer() tylko ustawia komunikat wy(cid:258)wietlany jako potwierdzenie na stronie. W rzeczywistej aplikacji oczywi(cid:258)cie nale(cid:285)a(cid:239)oby zapisa(cid:202) dane w bazie. Na tym etapie mo(cid:285)na zobaczy(cid:202), jak dzia(cid:239)a komponent kreatora (rysunek 5.12). Rysunek 5.12. Dzia(cid:239)anie komponentu kreatora Zauwa(cid:285), (cid:285)e komponent kreatora automatycznie dodaje przycisk Next w prawym dolnym rogu strony (rysunek 5.13). Klikni(cid:218)cie tego przycisku powoduje przej(cid:258)cie do nast(cid:218)pnej strony kreatora. 181 Kup książkęPoleć książkę Java EE 6. Tworzenie aplikacji w NetBeans 7 Rysunek 5.13. Przycisk Next pozwala przechodzi(cid:202) mi(cid:218)dzy stronami kreatora Jak mo(cid:285)na si(cid:218) domy(cid:258)li(cid:202), komponent kreatora generuje zarówno przycisk Next, jak i przycisk Back. Po przej(cid:258)ciu w kreatorze do ostatniej strony i klikni(cid:218)ciu przycisku Prze(cid:258)lij pojawi si(cid:218) komuni- kat z potwierdzeniem wygenerowany przez metod(cid:218) saveCustomer() z ziarna zarz(cid:200)dzanego CustomerController. Komunikat ten jest wy(cid:258)wietlany przez komponenty p:messages , które za- pewniaj(cid:200) elegancki styl tekstu bez konieczno(cid:258)ci jawnego stosowania stylów CSS (rysunek 5.14). Rysunek 5.14. Komponent p:messages zapewnia elegancki styl komunikatu 182 Kup książkęPoleć książkę Rozdzia(cid:225) 5. • Tworzenie eleganckich aplikacji sieciowych Dodatkowe informacje W tym rozdziale przedstawiono tylko podstawowe informacje na temat mo(cid:285)liwo(cid:258)ci biblioteki PrimeFaces. Pokaz ilustruj(cid:200)cy wszystkie komponenty z tej biblioteki znajdziesz na stronie http://www.primefaces.org/showcase/ui/home.jsf. Wi(cid:218)cej informacji na temat tej biblioteki zawiera witryna http://www.primefaces.org. Podsumowanie Ten rozdzia(cid:239) zawiera wprowadzenie do biblioteki komponentów JSF PrimeFaces dost(cid:218)pnej w (cid:258)rodowisku NetBeans od wersji 7.0. Pokazano tu, w jaki sposób biblioteka PrimeFaces umo(cid:285)- liwia (cid:239)atwe tworzenie eleganckich aplikacji z obs(cid:239)ug(cid:200) Ajaksa. Jednym z wa(cid:285)nych opisanych tu komponentów biblioteki PrimeFaces jest komponent zak(cid:239)adek, który umo(cid:285)liwia wygodne dziele- nie stron na zak(cid:239)adki. Dowiedzia(cid:239)e(cid:258) si(cid:218) te(cid:285), jak stosowa(cid:202) komponent kreatora z biblioteki PrimeFaces, pozwalaj(cid:200)cy na (cid:239)atwe tworzenie w aplikacjach sieciowych interfejsów opartych na kreatorach. 183 Kup książkęPoleć książkę Java EE 6. Tworzenie aplikacji w NetBeans 7 184 Kup książkęPoleć książkę Skorowidz architektura JMS, 270 atrybuty dyrektywy strony, 57 automatyczna obs(cid:239)uga zasobów, 159 automatyczne generowanie encji, 200 klas, 296 komunikatów, 136, 149 stron, 167 B baza danych, 308 aktualizowanie danych, 116 modyfikowanie danych, 114 schemat APP, 190 usuwanie danych, 119 wstawianie danych, 114 bezpiecze(cid:241)stwo aplikacji, 86 serwera, 89 bezstanowe ziarno sesyjne, 298, 314 biblioteka JSTL, 97, 122, 126 PrimeFaces, 165 znaczników niestandardowych, 127 C CDDL, Common Development and Distribution License, 21 CDI, Contexts and Dependency Injection, 249 A adnotacja @ ActivationConfigProperty, 283 AroundInvoke, 240 EJB, 301 Entity, 193, 206 FacesValidator, 151 Id, 193 InterceptorBinding, 263 Interceptors, 240, 241 ManagedBean, 145 MessageDriven, 283 Named, 253 NamedQueries, 207 Path, 314, 319 Qualifier, 256 RequestScoped, 145 Schedule, 243 Stateless, 314 Table, 207 TransactionAttribute, 238 ViewScoped, 145 WebServlet, 73 adres URL, 77 aktualizowanie danych w bazie, 116 AOP, Aspect Oriented Programming, 248 aplikacje CDI, 251 debugowanie, 327 JSF, 132, 217, 251 JSP, 215 profilowanie, 335 sieciowe, 51, 131 z kwalifikatorami, 260 Kup książkęPoleć książkę Skorowidz D DAO, Data Access Object, 195 debuger, 327–333 deskryptor glassfish-web.xml, 90 wdra(cid:285)ania, 73, 85 docelowa lokalizacja JMS, 272 dodawanie adnotacji @Interceptors, 241 deskryptora wdra(cid:285)ania, 85, 108 grup bezpiecze(cid:241)stwa, 90 instrukcji INSERT, 114 metod do ziaren, 232, 248 nowej strony JSP, 67 pliku klienta, 294 pól, 62 projektu biblioteki, 234 referencji, 109 ról zabezpiecze(cid:241), 86 serwletu, 72 szablonu faceletu, 154 utrwalanych pól, 194 u(cid:285)ytkowników, 92 znaczników, 113 dokument JSR, 208 domena bezpiecze(cid:241)stwa, security realm, 81 dost(cid:218)p do obiektów JSTL, 104 stron, 87 ziarna, 233 metody obiektu, 70 obiekty, 69 dost(cid:218)pne dyrektywa strony JSP, 56 dzia(cid:239)anie typu do wi(cid:200)zania interceptorów, 266 dzielenie formularzy, 178 E EAR, Enterprise Application, 224 EJB, Enterprise JavaBeans, 223 ekran instalatora, 25 startowy, 26 encje JPA, 186, 192, 215, 244 etap projektu JSF, 135 342 fabryka po(cid:239)(cid:200)cze(cid:241), 274 facelet, 136, 251 format JSON, 317 XML, 317 formatowanie kodu, 60 formularz, 58, 65 fragmenty JSP, 93 F G generowanie aplikacji JSP, 215 encji JPA, 200, 203, 205 interfejsów, 178 klas, 296, 311 klasy kontrolerów, 196 kluczy g(cid:239)ównych, 193, 218 kodu kwerend JPQL, 207 metod, 291 serwletów, 73 stron, 167 stron JSF, 215 szablonów, 152 szablonów faceletu, 170 tabeli, 61 us(cid:239)ug sieciowych, 308 ziaren sesyjnych, 231, 244 getter, 145, 195 GPL, GNU Public License, 21 grupa bezpiecze(cid:241)stwa, 90 H hierarchia bie(cid:285)(cid:200)cej klasy, 45 do wysy(cid:239)ania komunikatów, 276 klienta, 296, 319 kwalifikatora, 256 nowego typu, 264 stereotypu, 262 us(cid:239)ugi sieciowej, 287, 299, 302, 305 Kup książkęPoleć książkę Skorowidz I J IDE, Integrated Development Environment, 15 identyfikator J2EE, 223, 237 Java EE, 16 Java ME, 16 Java SE, 16 JAXB, Java API for XML Binding, 203 JAX-RS, 307 JDK, Java Development Kit, 19 j(cid:218)zyk JPQL, 207 UEL, 252 JMS, Java Messaging Service, 269 JNDI, Java Naming and Directory Interface, 109 JPA, Java Persistence API, 16, 185 JPQL, Java Persistence Query Language, 207 JSF, JavaServer Faces, 54, 131 biblioteka PrimeFaces, 165 komponenty z(cid:239)o(cid:285)one, 159 nowy projekt, 133 poprawno(cid:258)(cid:202) danych, 148 szablony, 152 JSON, JavaScript Object Notation, 317 JSP, Java Server Pages, 51 JSR, Java Specification Request, 208 JSTL, Java Standard Tag Library, 97 JTA, Java Transaction API, 192 K kalendarz, 171 katalog instalacyjny, 23 resources, 140 klasa AbstractClass, 312 ApplicationConfig, 318 interceptora, 240 ValidatorException, 151 klasy fasady, 311 kontrolerów, 195 klient, 237 szablonu, 158 us(cid:239)ugi sieciowej, 293, 319 klucz g(cid:239)ówny, 193 kod klienta us(cid:239)ugi sieciowej, 297 JNDI, 224, 276 URI, 98, 307 ikona b(cid:239)(cid:200)d kompilacji, 48 implementacja interfejsu, 49 ostrze(cid:285)enie, 48 przes(cid:239)anianie metod, 48 implementowanie klienta, 317 strony b(cid:239)(cid:218)du logowania, 84 uwierzytelniania, 82 warstwy biznesowej, 223 informacje o bazie danych, 201 o przywracaniu pami(cid:218)ci, 338 instalowanie aplikacji, 35 instalowanie (cid:258)rodowiska, 19 Linux, 20 Mac OS X, 19 Microsoft Windows, 19 Solaris, 20 instrukcja DELETE, 120, 121 INSERT, 114 UPDATE, 119 integrowanie (cid:258)rodowiska, 27 z serwerem aplikacji, 27 z systemem RDBMS, 30 interceptor, 239, 263 interfejs API Servlet, 51 CDI, 249 graficzny, 288 javax.jms.Message, 278 javax.jms.MessageListener, 283 javax.servlet.jsp.jstl.sql.Result, 110 JAX-RS, 307 JAX-WS, 285 JMS, 270 JPA, 185 JTA, 192 lokalny, 230 zdalny, 230 343 Kup książkęPoleć książkę Skorowidz kolejka komunikatów, 272 komponent kreatora, 181 komponenty PrimeFaces, 165, 183 z(cid:239)o(cid:285)one, 159 komunikacja z baz(cid:200), 187 komunikat JMS, 271, 276 o b(cid:239)(cid:218)dzie, 149, 151, 171 SOAP, 289 konfigurowanie bezpiecze(cid:241)stwa aplikacji, 86, 89, 90 dost(cid:218)pu do stron, 87 fabryki po(cid:239)(cid:200)cze(cid:241), 275 klasy kontrolera, 197 klienta, 320 kodu do wysy(cid:239)ania komunikatów, 277 kolejki komunikatów, 273 komponentu, 160 kwalifikatora, 257 metody, 232 nowego ziarna, 281 odwzorowa(cid:241), 205 operacji, 289 operacji wstawiania danych, 114 po(cid:239)(cid:200)czenia, 190 procesu generowania ziaren, 245 serwletu, 74 (cid:258)rodowiska, 27 us(cid:239)ugi sieciowej, 301, 304 ziarna, 144 ziarna sesyjnego, 229 znacznika c:choose , 102 c:forEach , 105 c:if , 99 sql:query , 111 sql:update , 117, 120 konsola administracyjna serwera, 90, 91 kontener serwletów, 22 kontroler, 72 kreator Create Persistence Unit, 187 interfejsu, 180 klas encji, 187 New Entity Classes from Database, 207 New JSF Managed Bean, 145 us(cid:239)ug sieciowych, 299 344 kwalifikator CDI, 256 kwerendy nazwane, 207 licencja CDDL, 21 GPL, 21 lista obiektów, 69 szablonów kodu, 44 L (cid:146) (cid:239)a(cid:241)cuch znaków, 323 M mechanizm MTOM, 290 metoda GET, 59 getProjectStage(), 136 getServletContext(), 77 getSession(), 77 main(), 278 POST, 59 saveCustomer(), 181 sendJMSMessageToMyQueue(), 278 metody interfejsu javax.servlet.jsp.jstl.sql.Result, 110 model, 72 modyfikowanie danych w bazie, 114 deskryptora wdra(cid:285)ania, 89 kodu, 57 skryptletu, 79 strony, 58, 138 us(cid:239)ugi sieciowej, 288 MVC, Model-View-Controller, 72 N narz(cid:218)dzia diagnostyczne, 136 nawigacja dynamiczna, 142 statyczna, 142 Kup książkęPoleć książkę Skorowidz nazwa grupy, 90 nazwy ról zabezpiecze(cid:241), 90 NetBeans instalowanie aplikacji, 35 instalowanie (cid:258)rodowiska, 19 konfigurowanie (cid:258)rodowiska, 27 pierwsze uruchomienie, 26 pobieranie (cid:258)rodowiska, 16 wydajne programowanie, 38 nowa nowe nowy baza danych, 201 encja, 216 operacja, 289 pula po(cid:239)(cid:200)cze(cid:241), 189 rola, 87 strona, 66 us(cid:239)uga sieciowa, 300 operacje us(cid:239)ugi, 290 ziarno, 281 ziarno sesyjne, 229 deskryptor wdra(cid:285)ania, 109 egzemplarz encji, 219 fragment JSP, 95 projekt, 36 projekt JSF, 133 szablon faceletu, 153 O obiekty DAO, 195 na stronach JSP, 69 POJO, 186, 298 SurveyData, 76 interfejsu CDI, 250 widoków, 251, 253 obs(cid:239)uga okno Local Variables, 333 us(cid:239)ugi sieciowej, 302 VM Telemetry, 337 okre(cid:258)lanie pakietu zasobów, 310 opcja Connect Using…, 33 Create Database…, 200 Deploy, 101 Getters and Setters, 145 Run File, 64 Test Resource Uri, 314 operacje CRUD, 307 us(cid:239)ugi sieciowej, 295 operatory JSTL, 104 P pakiet JDK, 19 pakiety (cid:258)rodowiska NetBeans, 18 platforma JSF, 54, 131 plik glassfish-resources.xml, 276 web.xml, 90, 108, 135 pliki EAR, 224 JSP, 56, 68 WAR, 224 WSDL, 286, 293, 303 znaczników niestandardowych, 122 pobieranie danych, 138 danych z bazy, 109 referencji do obiektu, 235 (cid:258)rodowiska, 16 POJO, Plain Old Java Object, 186, 298 pola do wprowadzania danych, 62 pole wyboru, 62, 63 po(cid:239)(cid:200)czenie z RDBMS, 32 profiler, 335–339 programowanie aspektowe, 239, 248, 263, 267 serwletów, 72 projekt Enterprise Application, 225, 271 Java Class Library, 227 protokó(cid:239) REST, 285 SOAP, 285 przenoszenie wspólnego kodu, 96 przesy(cid:239)anie danych, 323 formularza, 64 komunikatów, 275–279 345 Kup książkęPoleć książkę Skorowidz przycisk Remove Operation, 289 pula po(cid:239)(cid:200)cze(cid:241), 187, 188 R referencja do interfejsu zdalnego, 236 relacja jeden do jednego, 211, 213 jeden do wielu, 211, 213 wiele do jednego, 211 wiele do wielu, 211, 213 relacje dwukierunkowe, 214 jednokierunkowe, 214 mi(cid:218)dzy encjami, 209 REST, Representational State Transfer, 285, 307 role zabezpiecze(cid:241), 86 S schemat serwer APP, 190 bazy danych, 34, 203 aplikacji, 19, 27 aplikacji GlassFish, 22, 54 Tomcat, 54 serwlet, 51, 72, 74 setter, 145, 195 siatka, 139 skrót, 82 skróty klawiaturowe, 43 Alt+Enter, 46 Alt+F12, 45 Alt+F7, 46 Alt+Insert, 45, 145 Ctrl+[, 45 Ctrl+E, 46 Ctrl+F12, 43 Ctrl+Shift+[, 45 Ctrl+Shift+I, 47 Ctrl+Shift+N, 52 Ctrl+Spacja, 38, 57 Shift+Alt+F, 46, 60 Shift+Alt+O, 46 Shift+F6, 64 346 skrypt create_populate_tables.sql, 202 skryptlety JSP, 71 SOAP, Simple Object Access Protocol, 285 sprawdzanie poprawno(cid:258)ci danych, 148 ziaren, 208 SQL-owe znaczniki, 109 stereotyp CDI, 260 sterownik JDBC, 31, 189 stosowanie kwalifikatorów, 258 strona b(cid:239)(cid:218)du logowania, 84 confirmation.xhtml, 255 do wprowadzania danych, 57 domy(cid:258)lna, 38 logowania, 92 startowa aplikacji, 218 wy(cid:258)wietlaj(cid:200)ca dane, 66 z potwierdzeniem, 146, 172, 260 strony JSP, 56 system JavaDB, 189, 190 RDBMS, 27, 31, 189 szablony, 152, 154 szablony kodu, 41, 42 szkielet projektu JSF, 135 (cid:258)cie(cid:285)ka resources, 319 (cid:165) T technologia JSP, 51 testowanie us(cid:239)ugi sieciowej, 291, 314–317 Tomcat, 22 transakcje, 238 tryb potwierdzania, 279, 283 tworzenie aplikacji, 166 aplikacji JSF, 132, 169 aplikacji sieciowych, 51, 131 bazy danych, 201 deskryptora wdra(cid:285)ania, 89 docelowej lokalizacji JMS, 272 encji JPA, 186 Kup książkęPoleć książkę Skorowidz fragmentu JSP, 93, 94 klas kontrolerów, 195 klasy encji, 186 klasy interceptora, 240 klienta szablonu, 155 klienta us(cid:239)ug sieciowych, 293, 295, 319 kolejki komunikatów, 273 komponentów z(cid:239)o(cid:285)onych, 160 kwalifikatora, 256 obiektów DAO, 195 pliku ziarna, 280 pliku znacznika JSP, 122 po(cid:239)(cid:200)czenia JMS, 279 projektu Enterprise Application, 225 projektu Java Class Library, 227 puli po(cid:239)(cid:200)cze(cid:241), 189 serwletów, 72 stereotypu, 261 strony wy(cid:258)wietlaj(cid:200)cej dane, 66 strony z potwierdzeniem, 146 szablonów faceletów, 152 us(cid:239)ug sieciowych, 285, 298, 303, 308 ziarna, 76 ziarna sesyjnego, 224, 228 ziarna zarz(cid:200)dzanego, 143 (cid:283)ród(cid:239)a danych, 189 typy do wi(cid:200)zania interceptorów, 263 U udost(cid:218)pnianie obiektu POJO, 298 ziaren EJB, 298, 301 UEL, Unified Expression Language, 252 URI, Uniform Resource Identifier, 307 URI, Unique Resource Identifier, 98 uruchamianie aplikacji, 147 klienta, 237 projektu, 55 (cid:258)rodowiska, 26 us(cid:239)ugi sieciowe RESTful, 307, 311 SOAP, 285 us(cid:239)ugi zegara, 243 ustawianie pakietu, 309 w(cid:239)a(cid:258)ciwo(cid:258)ci pola wyboru, 63 w(cid:239)a(cid:258)ciwo(cid:258)ci przycisku, 64 w(cid:239)a(cid:258)ciwo(cid:258)ci serwletu, 73 w(cid:239)a(cid:258)ciwo(cid:258)ci strony JSP, 67 usuwanie danych z bazy, 119 operacji us(cid:239)ugi, 289 utrwalanie danych, 191, 194 uwierzytelnianie u(cid:285)ytkownika certyfikat po stronie klienta, 82 oparte na formularzu, 82–85 podstawowe, 81 z wykorzystaniem skrótu, 82 uzupe(cid:239)nianie kodu, 38, 40 nazw, 38, 41 u(cid:285)ywanie szablonów, 154 W walidator niestandardowy, 150 warto(cid:258)ci adnotacji @TransactionAttribute, 238 wi(cid:200)zanie interceptorów, 263, 265 widok, 72 w(cid:239)a(cid:258)ciwo(cid:258)ci kolejki komunikatów, 274 pola wyboru, 63 przycisku, 64 serwletu, 73 strony JSP, 67 wprowadzanie danych, 57 wskazówki wizualne, 47 wstawianie formularzy, 59 tabeli, 60 wybieranie encji, 216, 245 klasy encji, 196 tabel, 204, 309 us(cid:239)ugi dla klienta, 320 wyciek pami(cid:218)ci, 338 wydajne programowanie, 38, 335 wyj(cid:200)tki JMSException, 282 ValidatorException, 151 347 Kup książkęPoleć książkę Skorowidz wysy(cid:239)anie komunikatów, 276 wy(cid:258)wietlanie cz(cid:218)(cid:258)ci strony, 98 stron, 88 wzorzec projektowy DAO, 195 Fasada, 311 MVC, 72 Z zabezpieczanie aplikacji sieciowych, 81 zak(cid:239)adka Adres, 177 zak(cid:239)adki, 173, 176 za(cid:239)(cid:200)cznik komunikatu, 290 zarz(cid:200)dzanie transakcjami, 238 zasi(cid:218)g ziarna, 79, 254 zasób REST, 310 zegar, 243 ziarno CDI, 252 EJB, 223, 247, 298 encyjne, 185, 223 JavaBeans, 76 sesyjne, 223, 228 bezstanowe, 224 stanowe, 224 sterowane komunikatami, 242, 271, 280, 282 zarz(cid:200)dzane, 143, 145 addressBean, 163 CustomerController, 180 zintegrowane (cid:258)rodowisko programistyczne, IDE, 15 zmienna (cid:258)rodowiskowa JAVA_HOME, 22 znacznik c:choose , 98, 101 c:forEach , 98, 104 c:if , 98 cc:attribute , 162 cc:implementation , 162 class , 265 f:validator , 151 h:commandButton , 142 h:form , 138, 178 h:graphicImage , 141 h:label , 141 h:message , 141 h:outputLabel , 141 h:panelGrid , 139 h:panelGroup , 142 h:selectOneMenu , 141 interceptor , 265 p:calendar , 171 p:commandButton , 167 p:dialog , 167 p:inputMask , 177 p:messages , 170 p:tabView , 173 p:wizard , 178 sql:param , 116 sql:query , 109 sql:update , 114, 117 ui:composition , 156 ui:define , 156 ui:insert , 156 znaczniki JSTL, 98 niestandardowe JSP, 122 PrimeFaces, 167 SQL-owe, 107 (cid:189) (cid:191) (cid:283)ród(cid:239)o danych, 111, 188 (cid:285)(cid:200)danie GET, 78 (cid:285)(cid:200)danie POST, 78 348 Kup książkęPoleć książkę
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Java EE 6. Tworzenie aplikacji w NetBeans 7
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: