Professional Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG
TWJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
Serwisy internetowe.
Programowanie
Autorzy: Marty Hall, Larry Brown
Tumaczenie: Szymon Kobalczyk,
Marek Paczyski, Rafa Szpoton
ISBN: 83-7361-155-X
Tytu oryginau: Core Web Programming, 2nd Edition
Format: B5, stron: 1254
Przykady na ftp: 1211 kB
Kompendium wiedzy dla profesjonalnych programistw serwisw internetowych.
Ksika zawiera komplet informacji niezbdnych twrcom zaawansowanych aplikacji
sieciowych i opisuje: HTML 4, Java Standard Edition 1.3, serwlety, JavaServer Pages
i wiele innych technologii. Serwisy internetowe. Programowanie czy te technologie
pokazujc, jak przy ich pomocy tworzy profesjonalne systemy.
ZAMW INFORMACJE
O NOWOCIACH
HTML 4: Dogbny, praktyczny opis struktury dokumentu HTML, jego elementw, ramek
i styli kaskadowych.
ZAMW CENNIK
CZYTELNIA
FRAGMENTY KSIEK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treci
O Autorach...................................................................................................................................................21
Wstp.......................................................................................................................................................... 23
Cz I Jzyk HTML
29
Spis treci
Rozdzia 3. Elementy tekstowe w HTML 4.0 ............................................................................................. 77
3.1.
3.2.
3.3.
3.4.
Spis treci
163
Spis treci
7.7. Program javadoc .................................................................................................. 209
Znaczniki javadoc ................................................................................................ 210
Argumenty linii polece programu javadoc ............................................................. 213
7.8. Dziedziczenie....................................................................................................... 215
7.9. Interfejsy i klasy abstrakcyjne ............................................................................... 219
7.10. Pakiety, cieki dostpu do klas i archiwa JAR ..................................................... 226
cieka do klas CLASSPATH ............................................................................ 229
7.11. Modyfikatory deklaracji ....................................................................................... 232
Modyfikatory widocznoci ..................................................................................... 232
Inne modyfikatory ................................................................................................ 233
7.12. Podsumowanie .................................................................................................. 235
Spis treci
Spis treci
11.3. Obsuga zdarze w klasach wewntrznych ............................................................ 374
11.4. Obsuga zdarze w anonimowych klasach wewntrznych ....................................... 376
11.5. Standardowe interfejsy nasuchu......................................................................... 377
11.6. Za kulisami niskopoziomowe przetwarzanie zdarze ......................................... 382
11.7. Pole tekstowe poprawiajce bdy ....................................................................... 385
11.8. Klasa deski krelarskiej ..................................................................................... 387
Ulepszona deska krelarska................................................................................. 389
11.9. Podsumowanie .................................................................................................. 390
Spis treci
10
Spis treci
13.20. Klasa TextArea ................................................................................................ 491
Konstruktory ....................................................................................................... 491
Przykad puste i wypenione obszary tekstowe ................................................... 492
Inne metody klasy TextArea .................................................................................. 492
Obsuga zdarze obiektu TextArea......................................................................... 493
13.21. Klasa Label ..................................................................................................... 493
Konstruktory ....................................................................................................... 494
Przykad cztery rne etykiety ........................................................................... 494
Inne metody klasy Label....................................................................................... 495
Obsuga zdarze obiektu Label ............................................................................. 496
13.22. Paski przewijania i suwaki ................................................................................ 497
Konstruktory ....................................................................................................... 497
Przykad rnorodne paski kontrolki suwakw .................................................... 498
Inne metody klasy Scrollbar.................................................................................. 499
Obsuga zdarze obiektu Scrollbar ........................................................................ 501
13.23. Menu kontekstowe........................................................................................... 503
Konstruktory ....................................................................................................... 503
Przykad menu kontekstowe apletu ................................................................... 503
Inne metody klasy PopupMenu ............................................................................. 505
Obsuga zdarze obiektu PopupMenu .................................................................... 505
13.24. Podsumowanie ................................................................................................ 506
Spis treci
11
12
Spis treci
16.4. Tworzenie metod wielowtkowych........................................................................ 633
16.5. Metody klasy Thread .......................................................................................... 638
Konstruktory ....................................................................................................... 638
Stae .................................................................................................................. 639
Metody ............................................................................................................... 640
Zatrzymywanie wtku ........................................................................................... 644
16.6. Grupy wtkw .................................................................................................... 646
Konstruktory ....................................................................................................... 646
Metody ............................................................................................................... 647
16.7. Wielowtkowa grafika i podwjne buforowanie...................................................... 648
Odrysowywanie wszystkiego w metodzie paint........................................................ 649
Zaimplementowanie elementw dynamicznych jako odrbnego komponentu............. 652
Stworzenie odrbnych procedur bezporednio zajmujcych si rysowaniem .............. 653
Nadpisanie metody update i spowodowanie,
aby paint wykonywao przyrostowe uaktualnianie............................................... 655
Wykorzystanie podwjnego buforowania ................................................................ 659
16.8. Animowanie obrazkw ........................................................................................ 664
16.9. Czasomierze...................................................................................................... 668
Konstruktor......................................................................................................... 671
Inne metody ........................................................................................................ 671
16.10. Podsumowanie ................................................................................................ 673
Spis treci
13
735
14
Spis treci
19.4. Czas ycia serwletu............................................................................................ 785
Metoda init ......................................................................................................... 785
Metoda service ................................................................................................... 786
Metody doGet, doPost oraz doXxx ......................................................................... 787
Interfejs SingleThreadModel ................................................................................. 787
Metoda destroy ................................................................................................... 788
19.5. Przykad wykorzystania parametrw inicjujcych.................................................... 788
19.6. danie klienta dostp do danych formularza .................................................. 791
Odczytywanie danych formularza w programach CGI................................................ 791
Odczytywanie danych formularza w serwletach ....................................................... 791
Przykad odczytywanie wartoci trzech parametrw............................................. 792
Filtrowanie danych zapytania ................................................................................ 794
19.7. danie klienta nagwki dania HTTP ........................................................... 796
Odczytywanie nagwkw dania w serwletach...................................................... 796
Przykad tworzenie tabeli zawierajcej wszystkie nagwki dania....................... 798
Nagwki dania protokou HTTP 1.1.................................................................... 800
Wysyanie skompresowanych stron WWW .............................................................. 803
19.8. Odpowiedniki standardowych zmiennych CGI w przypadku serwletw...................... 805
19.9. Odpowied serwera kody stanu HTTP .............................................................. 808
Okrelanie kodw stanu....................................................................................... 808
Kody stanu protokou HTTP 1.1. ........................................................................... 810
Interfejs uytkownika dla rnych wyszukiwarek internetowych................................. 815
19.10. Odpowied serwera nagwki odpowiedzi HTTP............................................... 819
Ustawianie nagwkw odpowiedzi w serwletach .................................................... 819
Nagwki odpowiedzi protokou HTTP 1.1............................................................... 820
Trway stan serwletu oraz automatyczne odwieanie stron..................................... 826
19.11. Cookies .......................................................................................................... 834
Korzyci wynikajce ze stosowania cookies ........................................................... 835
Niektre problemy z plikami cookies ..................................................................... 836
Interfejs programistyczny API obsugi plikw Cookie w serwletach ............................ 837
Przykad ustawiania oraz odczytywania cookies ...................................................... 840
Proste narzdzia do obsugi cookies...................................................................... 844
Odszukiwanie cookies o okrelonych nazwach ....................................................... 844
Tworzenie dugotrwaych cookies........................................................................... 845
19.12. ledzenie sesji ................................................................................................ 846
Konieczno ledzenia sesji ................................................................................. 846
Interfejs API sucy do ledzenia sesji.................................................................. 848
Koczenie sesji ................................................................................................... 851
Serwlet ukazujcy licznik odwiedzin ....................................................................... 852
19.13. Podsumowanie ................................................................................................ 854
Spis treci
15
16
Spis treci
21.5. Wysyanie danych przy uyciu metody POST
i przetwarzanie wynikw wewntrz apletu (tunelowanie HTTP) ............................ 962
21.6. Aplet wysyajcy dane przy uyciu metody POST.................................................... 965
21.7. Pomijanie serwera HTTP podczas komunikacji z programem po stronie serwera ...... 969
21.8. Podsumowanie .................................................................................................. 969
Cz IV JavaScript
1055
Spis treci
17
18
Spis treci
25.7. Obiekt FileUpload............................................................................................. 1140
Waciwoci ...................................................................................................... 1140
Metody ............................................................................................................. 1141
Zdarzenia.......................................................................................................... 1141
25.8. Obiekt Form..................................................................................................... 1141
Waciwoci ...................................................................................................... 1141
Metody ............................................................................................................. 1142
Zdarzenia.......................................................................................................... 1142
25.9. Obiekt Function ............................................................................................... 1143
Konstruktor....................................................................................................... 1143
Waciwoci ...................................................................................................... 1143
Metody ............................................................................................................. 1144
Zdarzenia.......................................................................................................... 1144
25.10. Obiekt Hidden................................................................................................ 1144
Waciwoci ...................................................................................................... 1144
Metody ............................................................................................................. 1144
Zdarzenia.......................................................................................................... 1145
25.11. Obiekt History................................................................................................ 1145
Waciwoci ...................................................................................................... 1145
Metody ............................................................................................................. 1145
Zdarzenia.......................................................................................................... 1146
25.12. Obiekt Image ................................................................................................. 1146
Konstruktor....................................................................................................... 1146
Waciwoci ...................................................................................................... 1146
Metody ............................................................................................................. 1147
Zdarzenia.......................................................................................................... 1147
25.13. Obiekt JavaObject .......................................................................................... 1148
25.14. Obiekt JavaPackage ....................................................................................... 1148
25.15. Obiekt Layer .................................................................................................. 1148
Konstruktory ..................................................................................................... 1149
Waciwoci ...................................................................................................... 1149
Metody ............................................................................................................. 1150
Zdarzenia.......................................................................................................... 1151
25.16. Obiekt Link.................................................................................................... 1152
Waciwoci ...................................................................................................... 1152
Metody ............................................................................................................. 1153
Zdarzenia.......................................................................................................... 1153
25.17. Obiekt Location ............................................................................................. 1154
Waciwoci ...................................................................................................... 1154
Metody ............................................................................................................. 1155
Zdarzenia.......................................................................................................... 1155
25.18. Obiekt Math .................................................................................................. 1155
Waciwoci ...................................................................................................... 1155
Metody ............................................................................................................. 1156
Zdarzenia.......................................................................................................... 1157
25.19. Obiekt MimeType ........................................................................................... 1158
Waciwoci ...................................................................................................... 1158
Metody ............................................................................................................. 1158
Zdarzenia.......................................................................................................... 1158
Spis treci
19
20
Spis treci
25.31. Obiekt String ................................................................................................. 1179
Konstruktor....................................................................................................... 1180
Waciwoci ...................................................................................................... 1180
Metody ............................................................................................................. 1180
Zdarzenia.......................................................................................................... 1184
25.32. Obiekt Submit ............................................................................................... 1184
Waciwoci ...................................................................................................... 1184
Metody ............................................................................................................. 1185
Zdarzenia.......................................................................................................... 1185
25.33. Obiekt Text.................................................................................................... 1186
Waciwoci ...................................................................................................... 1186
Metody ............................................................................................................. 1186
Zdarzenia.......................................................................................................... 1187
25.34. Obiekt Textarea ............................................................................................. 1187
Waciwoci ...................................................................................................... 1187
Metody ............................................................................................................. 1188
Zdarzenia.......................................................................................................... 1188
25.35. Obiekt Window............................................................................................... 1189
Waciwoci ...................................................................................................... 1189
Metody ............................................................................................................. 1192
Zdarzenia.......................................................................................................... 1196
Przykad uycia metody open .............................................................................. 1198
25.36. Podsumowanie .............................................................................................. 1200
Dodatki
1201
Wykorzystywanie apletw
w charakterze interfejsu
programw dziaajcych
po stronie serwera
W tym rozdziale:
n
Omwione w rozdziale 18. formularze HTTP stanowi prosty, lecz ograniczony sposb
pobierania danych wejciowych od uytkownika i przekazywania ich do serwletw lub
programw CGI. Niekiedy jednak wymagane jest zastosowanie bardziej skomplikowanego
interfejsu uytkownika. Aplety umoliwiaj wiksz kontrol na rozmiarem, kolorem oraz
czcionk elementw graficznego interfejsu uytkownika, jak rwnie udostpniaj wicej
moliwoci obsugiwanych przez dostarczone obiekty (paski postpu, przewijania, rysowanie linii, okna modalne itp.), pozwalaj ledzi zdarzenia myszy oraz klawiatury, obsugiwa definiowane wasne formularze (przecigane ikony, klawiatury do wybierania numerw itp.), a take pozwalaj wysa danie pochodzce od jednego uytkownika do wielu
programw dziaajcych po stronie serwera. Te dodatkowe moliwoci maj jednak swoj
946
947
Kiedy dane przesyane s przez przegldark, zostan zakodowane przy uyciu metody
URL encode, co oznacza, e spacje konwertowane s na znaki plusa (!), za wszystkie nie
alfanumeryczne znaki zmieniane s na znak procenta ("), po ktrym wystpuj dwie cyfry
szesnastkowe, okrelajce kod znaku w uywanym zestawie. Zostao to dokadnie opisane
w podrozdziale 18.2, Znacznik FORM. W poprzednim przykadzie zaoono, e acuch
znakowy jest ju zakodowany poprawnie. W przeciwnym wypadku wystpiby
bd dziaania programu. W JDK 1.1 oraz w wersjach pniejszych wystpuje specjalna
klasa o nazwie , posiadajca zdefiniowan statyczn metod o nazwie ,
ktrej wywoanie powoduje wykonanie omwionego kodowania. Jeli wic aplet komunikuje si z programem po stronie serwera, ktry normalnie otrzymywaby dane z formularzy HTML, aplet musi zakodowa kad przesyan warto, lecz musi rwnie uy
znaku rwnoci (#) pomidzy kad nazw zmiennej a stowarzyszon z ni wartoci, jak
rwnie znaku ($) w celu oddzielenia od siebie kadej takiej pary. Dlatego te nie mona
wykorzysta wspomnianej metody %& ' dla caego acucha
znakowego zawierajcego dane (wwczas zostayby zakodowane rwnie te znaki specjalne przyp. tum.), lecz w zamian selektywnie zakodowa kad cz pary. Czynno ta
moe zosta wykonana na przykad w poniszy sposb:
+*
,)%
#%
%,-
.)%
#%
%.-
###
/)%
#%
%/
!"#$%
&% %$' (
)"%*###&
948
%**$*
@ *
%*>@ *
0 %IG5 *0
>* >
%*>@ *
0 %#
%**$*
Rysunek 21.2.
Zatwierdzenie
zapytania
powoduje
wywietlenie
obok siebie
wynikw
wyszukiwania,
pochodzcych
z trzech rnych
wyszukiwarek
949
950
951
DJ')+)<KG+,.H72E
DJ')+! > #$ +!K?/;/KE
DJ')+)<!K+27272E
DJ')+! > ; #$ /') HE
DJ')+! > ?(>#$ /') ,E
DJ')+! > %#$ /') .E
D3J')+)<E
D3J')+)<E
952
953
954
nagwki dania HTTP (patrz podrozdzia 19.7), mona w tym celu uy metody
o nazwie 3 .
%*#R
>7 %
955
do aplikacji klienta
956
%**$*
%*>#
%**$*
%*>#
%*>+
%*>!%I!%
%*>!%#J%%*>
%*>
%*>!%#
%**$*
%*>#
%*>7I
#+K<B
* % + !
I
33X4
>A
%$ C#+4*
339%*4>
* A 04% 7 5
7%0
* A *
33 A >C%
33
08%*: * A C%%$: >%$#
* %@ * F >%0 @
7* % +
> 0@ * F >%0 @
7* % +
&
322P5 * *%*5*8%*>+
2%$*4>
* A 04% 5* 04% *
2>#G%*5*8%*+
2 0
* A *%7 5!56:9*
2 >#
23
957
958
959
H#Z
&
&
*%1*
%
<$
# %
2,HHH
&% %$?
)"%**&
&
&
960
961
962
963
Aby umoliwi wysyanie z apletw do serwera danych przy uyciu metody oraz odczytywanie wynikw, wymagane jest wykonanie trzynastu czynnoci przedstawionych poniej. Chocia ich liczba jest do dua, to jednak kada z czynnoci jest wzgldnie prosta.
Kod zosta znacznie uproszczony dziki pominiciu blokw postaci + 2+
, w ktrych powinny zosta umieszczone wszystkie instrukcje.
1. Utworzenie obiektu URL wskazujcego na domowy serwer apletu Podobnie
odbieranie wynikw
%*#K
ByteArrayOutputStream
Wysajc normalne dane formularza, naley wykorzysta obiekt klasy
*(*. W celu wysania struktur danych zachowanych przy uyciu
serializacji, trzeba wykorzysta w zamian obiekt klasy 0 .
*G*
G0%*
*G**I* 7
964
13. Pogratulowanie sobie Procedura obsugi danych przesyanych przy uyciu metody
jest duga i zawia. Na szczcie, jest to do standardowy proces. Oprcz tego
965
?**
/ *>
966
Rysunek 21.4.
Wynik dziaania
apletu o nazwie
WyslijPost,
wysyajcego
przy uyciu
metody POST
dane do serwletu
PokazNaglowki
) *
! 1 ,! 1
G0%*#
,
/ +
)>*
<>+=7,Z
33 % *64>*> 6*80
*7
33>: A #
/ + #
0
<>#)
* (
* % + !
I
33
B % A C%%$ >
> :% %$
> > #
+** % + #B
+*>*> G*>G*0%> *>*> ###
*(# $H
>*> G*>IA
=< * %% Y
%* GGG9%*>AB<<
7Y
* >
> %4>5 *
Y
%*](* =]#'9 *00
>%$** GGGY
> #
)
(
&
/ +
/
)>*
<>
Q, %
=7M
+*+*+*#1 K(* % + #
/
#
0
<>#<"+*
G0%*#
?
! 1 .! 1
G0%*#
.
%*>G *0IG 0
%*>G *0#
%**$*
#
G0%*7I
#/K<B
G*><"
G*>#JJ' %
7J#
?/7,M
G*>#<">*> G*>
G*>7I
#!)/<)
&
*%1*
%*
(
%*)11
+*> * % + #
%
+* / + #
0
<>#<"
+*%*
/
#
0
<>#<"
*
?# ?%*
&% %$/J )"%*(
Q,33
5 LH
&
+**
?#
0
<>#<"
!$ !# !
/-
-
-
'
!" #$ !&" '
33/ 9*8*679 4
> **%
(
*8%*
8%0#
& "4'
33/ 9 > 6 4
%9 ***A *
%$
#
& <
'
= %
0
0=
#
= %
0>?@'((
4
33+*C *04%
(
2
A
#2
A
0=
-
'
$2 #
84
)0#8B
/$0B
8C )0#8B
/$)/B
8C0%$$
#8B
/$%$
0'
967
968
&
0'
'
/EA
#8F8'
A/& ; 88'
#&
$!G#
A/&$
'
A/&$/EA
'
6
&% %$?K)"%**
33/ 9 * 6*( %0 > *P 1
+##* ?K)"%*=*
&
&
33K*>>
<"J*
0%*%**>>
33*% C*> *>
33<"J*
#
*9
* 56*%4 >7
33 8*>
0049%*
Q%
* % > *>#
*1 +* %@ >
)>*
<>
+* %K* #
0
<>#<"
)%
#%
%K*
&
&
969
21.8. Podsumowanie
Formularze HTML stanowi najprostszy oraz najpowszechniej stosowany interfejs uytkownika programw dziaajcych po stronie serwera. Tym niemniej, aplety dostarczaj bogatszego zestawu elementw interfejsu uytkownika, umoliwiaj utworzenie ekranw z cigle
odwiean zawartoci oraz upraszczaj zdecydowanie przesyanie duych zoonych
struktur danych. Generaln zasad jest uywanie formularzy wszdzie tam, gdzie jest to tylko
moliwe. Jednak wygodnie jest dysponowa moliwoci uycia apletw w przypadku, gdy
formularze HTML staj si zbyt ograniczone.