JAVA wprowadzenie do programowania (3/3) [1]
Czym jest aplikacja Java Web Start? Aplikacje JAWS są formą pośrednią pomiędzy apletami a aplikacjami Javy. Nie wymagają do pracy przeglądarki WWW, jednak mogą być z niej uruchamiane. Nie wymagają do pracy połączenia internetowego (w przeciwieństwie do apletów). Wszelkie pliki wymagane przez aplikacje JAWS są składowane na dysku lokalnym (po pierwszym uruchomieniu/pobraniu z sieci). Proces instalacji jest zdefiniowany przez krótki plik XML z rozszerzeniem *.jnlp. [2]
JNLP JNLP (Java Network Launching Protocol) jest specyfikacją bazującą na XLMu i służącą do obsługi technologii Java WebStart Java Web Start nie stawia znaczących ograniczeń w sposobie tworzenia kodu programu. W praktyce istnieje możliwość łatwego przystosowania apletu lub aplikacji Javy do pracy w JNLP. JNLP ma wiele implementacji (m. in. open-source) : - JAWS - Open JNLP (http://openjnlp.nanode.org/) - Rachel (http://rachel.sourceforge.net/) - Netx (http://jnlp.sourceforge.net/netx) - DeployDirector (http://www.quest.com/deploydirector/) [3]
JNLP - implementacje [4]
cecha aplet Aplikacja Java Web Start Wymaga przeglądarki Musi czekać na załadowanie za każdym razem Sposób instalacji Automatyczna aktualizacja Podpisywane cyfrowo Klient wymagania początkowe Serwer wymagania początkowe Położenie plików Szybkość startu Szybkość pracy Wejście na stronę WWW Pobranie i zapisanie na dysku lokalnym Kliknięcię na odnośniku / Zwykle JRE Zwykły serwer HTTP (dla stron WWW) Serwer lub lokalnie (wymaga podpisywania) Standardowa (elementy cache'u) Niska (opóźnienia spowodowane przeglądarką) Brak (JRE może być instalowane automatycznie) Brak Lokalnie w dowolny sposób duża Średnia JRE powiązanie plików JNLP z javaw s.exe Obsługa typu applicat ion/xjava-jnlp-file MIME Automatycznie przypisywane na dysku lokalnym Duża (ponowne ładowanie odbywa się wyłącznie w sytuacji zmiany zawartości na serwerze) Średnia [5]
Java Webstart a przeglądarka internetowa sprawdzenie, czy używana przeglądarka obsługuje JAWS (i JNLP) odbywa się z poziomu JavaScriptu w następujący sposób: <script language="javascript" type="text/javascript"> <!-- if ( navigator.mimetypes && navigator.mimetypes.length && navigator.mimetypes[ 'application/x-java-jnlp-file' ] ) document.write( "Your browser appears to be already configured properly for Java Web Start." ); else document.write( "Your browser is not configured properly for Java Web Start *.jnlp and application/x-java-jnlp-file MIME types." ); // --> </script> [6]
Java Webstart a przeglądarka internetowa [7]
Java Webstart a bezpieczeństwo Dla zwiększenia bezpieczeństwa użytkownika do JAWS wprowadzono następujące mechanizmy: - potwierdzanie operacji dostępu do pików lokalnych [8]
Java Webstart a bezpieczeństwo Dla zwiększenia bezpieczeństwa użytkownika do JAWS wprowadzono następujące mechanizmy: - informację o tym, że okno pochodzi ze środowiska JAVY [9]
Konfiguracja JNLP <?xml version="1.0" encoding="utf-8"?> <jnlp spec="1.5+" codebase="file://localhost/c:/documents and Settings/AllUsers/Dokumenty/dydaktyka/materialy/ONM_MGR_2006/j ava/przyklady" href="appletapplication.jnlp"> <applet-desc documentbase="file://localhost/c:/documents and Settings/AllUsers/Dokumenty/dydaktyka/materialy/ONM_MGR_2006/j ava/przyklady" name="appletapplication" main-class="appletapplication" width="540" height="310"> </applet-desc> </jnlp> [10]
Osadzanie apletu w dokumencie HTML w dokumencie przekazywanie argumentów odbywa się w następujący sposób: <HTML> <BODY> <applet code="parametryzacja" width=300 height=150> <param name="parametr1" value="zawarosc1" > <param name="parametr2" value="zawarosc2" > <param name="parametr3" value="zawarosc3" > </applet> </BODY> </HTML> [11]
Osadzanie apletu w dokumencie HTML w aplecie odbieranie argumentów odbywa się w następujący sposób: String param; public void init() { param = getparameter("parametr1"); } [12]
Wstawianie plików graficznych W pakiecie java.awt jest umieszczona klasa Image, która definiuje zachowania obrazów. Można korzystać z obrazów zapisanych w formatach GIF i JPEG. Aby obraz pokazać w aplecie, musimy wykonać dwie operacje: 1)skopiować plik graficzny do apletu; 2)wyświetlić ten plik. Metoda getimage ( ) klasy Applet służy do kopiowania pliku graficznego do apletu. Wynikiem działania tej metody jest obiekt klasy Image. Metodę getimage ( ) można wywołać na dwa sposoby: getimage ( < adres sieciowy > ) getimage ( < adres bazowy >, < adres względny > ) Adresy sieciowy i bazowy są obiektami klasy URL, a adres względny łańcuchem znaków. [13]
[14]
[15]
Rysowanie prymitywów [16]
Przygotowanie animacji Klatki bardziej złożone należy przygotować zawczasu i skopiować do tablicy typu Image. Wyświetlanie elementów tej tablicy powinno przebiegać w osobnym wątku. Przed wyświetleniem kolejnej klatki animacyjnej należy wymazać z ekranu klatkę poprzednią Robi to automatycznie metoda repaint ( ). Wywołuje ona bowiem metodę public void update(graphics g) { g.clearrect(0, 0, width, height); paint(g); } Wywołanie metody repaint ( ) bez parametrów powoduje natychmiastowe przerysowywanie całego apletu. Zwykle stosowane są wersje z poniższymi parametrami: [17]