Definicja. Aplety są wykonywane po stronie klienta, serwlety po stronie serwera.

Podobne dokumenty
Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Języki i Techniki Programowania II. Wykład 13. TRaX, Applety, Java Security

Programowanie obiektowe

Programowanie graficznego interfejsu użytkownika. Wykład 8. Maciej Wołoszyn 10 maja 2006

Kurs programowania. Wykład 6. Wojciech Macyna. 7 kwietnia 2016

Programowanie Multimediów. Programowanie Multimediów JAVA. wprowadzenie do programowania (3/3) [1]

Spis treści. 1 Aplet. 2 Od aplikacji do apletu. 1 Aplet 1. 2 Od aplikacji do apletu 1. 3 Budowa apletu 3. 4 Cykl życia apletu 4

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Multimedia JAVA. Historia

Podstawy programowania GUI niskiego poziomu. APLETY.

Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy. Tworzenie łącz w apletach

Java niezbędnik programisty spotkanie nr 12. Graficzny interfejs użytkownika

Wybrane działy Informatyki Stosowanej

Java jako język programowania

Java Foundation Clases. Tworzenie graficznych interfejsów użytkownika (GUI) w Javie

Tworzenie i obsługa graficznego interfejsu uŝytkownika

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Podstawowe informacje o apletach

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Wykład 11: Programowanie Apletów

Wybrane działy Informatyki Stosowanej

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Wstęp do programowania w języku Java

Programowanie obiektowe zastosowanie języka Java SE

Applety Java. Applety są przykładem kodu Java wykonywanego po stronie klienta, ale bez ujawnionej (jak w przypadku skryptu) wersji źródłowej

Wstęp do programowania w języku Java

Wykład 1: Wprowadzenie do technologii Java

Aplikacje RMI Lab4

Wstęp do programowania w języku Java

Wykład 4_1. Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy.

Operatory. Składnia. Typy proste. Znaki specjalne

JAVA I SIECI. MATERIAŁY:

Podstawy Programowania

Programowanie Obiektowe GUI

Java jako zdalny interfejs aplikacji Webowych aplety

1 Atrybuty i metody klasowe

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Programowanie Multimediów JAVA. wprowadzenie do programowania (2/3) [1]

Programowanie obiektowe. Wprowadzenie

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Ćwiczenie 1. Przygotowanie środowiska JAVA

FLEX ( ) Przygotowanie środowiska developerskiego Hello world w MXML Hello world w ActionScript

WPROWADZENIE DO JĘZYKA JAVA

WPROWADZENIE DO JĘZYKA JAVA

Aplikacje RMI

Grafika i komunikacja człowiek komputer Laboratorium. Część 1: Wstęp do grafiki

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.

Tworzenie i wykorzystanie usług

Wstęp do programowania w języku Java

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski. Zaawansowane Systemy Decyzyjne. Laboratorium

Google Web Toolkit. Piotr Findeisen

JavaFX. Programowanie Obiektowe Mateusz Cicheński

Bezpieczne uruchamianie apletów wg

Programowanie obiektowe

Tworzenie projektu zawierającego aplet w środowisku NetBeans. lab1. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Informatyka I. Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. Politechnika Warszawska Wydział Transportu 2018

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Laboratorium Programowania Kart Elektronicznych

Podstawy Języka Java

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

JAX-RS czyli REST w Javie. Adam Kędziora

Aplikacja wielowątkowa prosty komunikator

Jak się poruszać w świecie Java Plug-inów (JRE)

Java Platform Micro Edition

Java techniki programowania

JAVA. Tomasz Grzywacz.

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

Interfejsy w Java. Przetwarzanie równoległe. Wątki.

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 2

Podpisywanie i bezpieczne uruchamianie apletów wg

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Swing Application Framework czyli tam i z powrotem. Copyright Piotr Kochański & Erudis,

Java - interfejs graficzny

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Bezpieczeństwo systemów komputerowych. Java i JavaScript. Java i JavaScript. Java - historia

JavaFX. Zaawansowane technologie Javy 2019

Wprowadzenie do Java Web Start

Zaawansowane aplikacje WWW - laboratorium

Java Podstawy JUST JAVA Michał Bereta Intytu Modelowania Komputerowego Wydział Fizyki, Matematyki i Informatyki Stosowanej

Systemy operacyjne na platformach mobilnych

Udostępnianie obrazu z kamer Sanyo HD na stronach WWW PORADNIK

OpenLaszlo. OpenLaszlo

ZAPOZNANIE SIĘ Z TWORZENIEM

Java Podstawy. Michał Bereta

Podstawy języka Java. przygotował:

Google Web Toolkit Michał Węgorek ZPO 2009

Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science

[Android] Podstawy programowania

Programowanie obiektowe

Współbieżność w środowisku Java

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1.

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie

Transkrypt:

Aplety Javy 1

Definicja Aplet (ang. applet zdrobnienie od aplikacja) Aplet jest specjalnym rodzajem programu napisanego w Javie, który jest uruchamiany w przeglądarce, wykorzystując wirtualną maszynę Javy albo w samodzielnej aplikacji AppletViewer służącej do testowania apletów Javy. Aplety mogą być pisane zarówno w Javie jak i innych językach kompilowanych do kodu bajtowego - na przykład Jython (implementacja języka programowania Python napisana w języku Java.). Aplety są wykonywane po stronie klienta, serwlety po stronie serwera. 2

Klasa Applet Aplet musi być dziedziczyć z klasy java.applet.applet (lub jednego z jej wariantów), dostarczającej standardowy interface pomiędzy apletem a środowiskiem przeglądarki. import java.applet.applet; import java.awt.graphics; public class Simple extends Applet {...... import javax.swing.japplet; public class Simple extends JApplet {...... 3

Cykl życia apletu Brak metody main!!! 4

Ładowanie apletu Tworzenie instancji klasy Applet (JApplet) Nowoutworzony aplet inicjalizuje się A następnie uruchamia się Cykl życia apletu Opuszczanie i powrót do strony z apletem Gdy użytkownik opuszcza stronę przeglądarka zatrzymuje i usuwa aplet. Stan apletu nie jest przechowywany. Po powrocie do strony z apletem, przeglądarka tworzy nowy obiekt apletu. Przeładowywanie apletu Podczas odświeżania lub przeładowywania strony z apletem, obecna instancja apletu jest zatrzymywana i usuwana, a następnie tworzona jest nowa instancja apletu. Zamknięcie przeglądarki Zanim przeglądarka zostanie całkowicie zamknieta, aplet musi mieć możliwość zatrzymania się i przeprowadzenia ostatecznego czyszczenia. 5

Prosty aplet informujący o swoim stanie import java.applet.applet; import java.awt.graphics; public class Simple extends Applet { StringBuffer buffer; public void init() { buffer = new StringBuffer(); additem("initializing... "); public void start() { additem("starting... "); public void stop() { additem("stopping... "); public void destroy() { additem("preparing for unloading..."); private void additem(string newword) { System.out.println(newWord); buffer.append(newword); repaint(); public void paint(graphics g) { //Draw a Rectangle around the applet's display area. g.drawrect(0, 0, getwidth() - 1, getheight() - 1); //Draw the current string inside the rectangle. g.drawstring(buffer.tostring(), 5, 15); 6

Środowisko wykonywania apletów Aplety uruchamiane są wewnątrz przeglądarki Aplety umieszczane są wewnątrz strony internetowej. Po ściągnięciu z serwera są uruchamiane w przeglądarce w tzw. piaskownicy (ang. sand box), aby ograniczyć dostęp do zasobów lokalnych. Java plug-in zainstalowany w przeglądarce kontroluje uruchamianie i działanie apletów. Przeglądarka musi również zawierać interpreter JavaScript 7

Uruchamianie apletów w JRE Java plug-in tworzy wątek dla każdgo apletu. Uruchamia on aplet w instancji Java Runtime Environment (JRE). Zwykle wszystkie aplety działają w ramach tej samej instancji JRE. Java Plug-in otwiera nową instancję JRE w następujących przypadkach: Gdy aplet wymaga specyficznej wersji JRE. Gdy aplet określa swoje własne parametry startowe JRE, np. wielkość stosu. Nowy aplet używa instającego JRE, jeśli jego wymagania są podzbiorem parametrów JRE. W przeciwnym przypadku nowa instancja JRE jest uruchamiana. Aplet będzie uruchamiany w istniejącym JRE, gdy spełnione są warunki: Wymagana przez aplet wersja JRE odpowiada insiejącemu JRE. Gdy parametry startowe JRE spełniają wymagania apletu. 8

Aplet GUI Aplety mogą oczywiście posiadać własny interfejs użytkownika (GUI). AWT Swing Aplet może jednocześnie korzystać z obydwu typu bibliotek, jednak nie jest to polecane, ze wzgledu na pewne restrykcje (problemy z wyglądem i rozmieszczeniem komponentów). 9

AWT AWT (Abstract Window ToolKit) przenośna biblioteka GUI zarówno dla aplikacji desktopowych oraz apletów. Dostarcza wysokopoziomowy komponety wizualnej interkacji dla aplikacji napisanych w języku Java. Obecna w Javie od samego początku. Cechy AWT: Bogaty zbiór komponentów graficznych Bardzo stabilny model zdarzeniowy (event-handling model). Narzędzia do obsługi grafiki, obrazów umożliwiające zmianę kształtu, koloru, czcionki etc. Elastyczne zarządzanie layout-em okna (wygląd obiektów niezależny od rozmiaru okna, czy rozdzielczości) Klasy umożliwiające transfer danych (kopiuj/wklej poprzez natywny clipboard). Komponenty AWT są cieżkie, czyli realizowane poprzez użycie graficznych bibliotek GUI systemu operacyjnego. 10

Swing Swing w całości jest zaimplementowany w Javie. Cechy Swing: Wszystkie cechy AWT. W 100% obsługuje komponenty AWT (Button, Scrollbar, Label, etc.). Zbiór dodatkowych wysokopoziomowych komponentów (tree view, list box, tabbed panes etc.). Javowy wygląd (niezależny od systemu operacyjnego). Komponenty Swing są lekkie - rysowane za pomocą kodu Javy w obszarze jakiegoś komponentu ciężkiego znajdującego się wyżej w hierarchii zawierania się komponentów (zwykle jest to kontener najwyższego poziomu). Komponenty lekkie mogą być przezroczyste, a zatem mogą przybierać wizualnie dowolne kształty oraz wygląd niezależny od platformy. 11

Hello world import javax.swing.japplet; import javax.swing.swingutilities; import javax.swing.jlabel; public class HelloWorld extends JApplet { //Called when this applet is loaded into the browser. public void init() { //Execute a job on the event-dispatching thread; creating this applet's GUI. try { SwingUtilities.invokeAndWait(new Runnable() { public void run() { JLabel lbl = new JLabel("Hello World"); add(lbl); JButton but = new JButton("Click to start"); add(but); ); catch (Exception e) { System.err.println("createGUI didn't complete successfully"); 12

Uruchamianie apletów Aby uruchomić aplet należy do najpierw skompilować (class, jar). Aplety mogą być uruchamiane na 2 sposoby: Za pomocą znaczników <applet> (stara szkoła) Za pomocą JNLP (Java Network Launch Protocol) 13

Umieszczanie apletów w HTML <HTML> <HEAD> <TITLE>Applet HTML Page</TITLE> </HEAD> <BODY> <H3>Applet HTML Page</H3> <P> </BODY> </HTML> <APPLET code="mojprogram.class" width=350 height=200></applet> </P> Gdy kod apletu powinien być pobrany z innej lokalizacj niż bieżący folder parametr codebase. <APPLET codebase= http://www.aplety.org/sciezka/do/apletu code="mojprogram.class" width=350 height=200></applet> 14

Umieszczanie apletów w HTML Aplet w postaci jar-a może zawierać dodatkowe elementy np. obrazki. Przykład uruchomienia apletu (klasa Aplecik) skompilowanego do bajtkodu Javy w toir.jar <applet code=aplecik width=256 height=256 archive="toir.jar"> <param name=img value=test.gif> </applet> Polecenie tworzące jar-a (można dodać v - verbose) jar cf jar-file input-file(s) jar cvf TicTacToe.jar TicTacToe.class audio images Wynikowy plik TicTacToe.jar zawierać bedzie plik TicTacToe.class oraz podkatalogi audio i images. 15

Umieszczanie apletów w HTML Zwiększenie stosu dla apletu (do 256MB). <applet code="myapplet.class" width="800" height="600"> <param name="java_arguments" value="-xmx256m"> </applet> 16

Składnia znacznika APPLET <APPLET CODEBASE = codebaseurl ARCHIVE = archivelist CODE = appletfile...or... OBJECT = serializedapplet ALT = alternatetext NAME = appletinstancename WIDTH = pixels HEIGHT = pixels ALIGN = alignment VSPACE = pixels HSPACE = pixels > <PARAM NAME = appletattribute1 VALUE = value> <PARAM NAME = appletattribute2 VALUE = value>... alternatehtml </APPLET> Parametry obowiązkowe: CODE, WIDHT, HEIGHT. 17

JNLP JNLP Java Network Launch Protocol <?xml version="1.0" encoding="utf-8"?> <jnlp spec="1.0+" codebase="" href=""> <information> <title>dynamic Tree Demo</title> <vendor>dynamic Team</vendor> </information> <resources> <!-- Application Resources --> <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se" /> <jar href="dynamictreedemo.jar" main="true" /> </resources> <applet-desc name="dynamic Tree Demo Applet" main-class="components.dynamictreeapplet" width="300" height="300"> </applet-desc> <update check="background"/> </jnlp> 18

JNLP wewnątrz HTML <body>... <script src="http://www.java.com/js/deployjava.js"></script> <script> var attributes = { code:'components.dynamictreeapplet', width:300, height:300 ; var parameters = {jnlp_href: 'dynamictree-applet.jnlp' ; deployjava.runapplet(attributes, parameters, '1.6'); </script>... </body> 19

Parametry wewnątrz i na zewnątrz JNLP <?xml version="1.0" encoding="utf-8"?> <jnlp spec="1.0+" codebase="" href="">... <applet-desc name="applet Takes Params" main-class="applettakesparams" width="800" height="50"> <param name="paramstr" value="somestring"/> <param name="paramint" value="22"/> </applet-desc>... </jnlp> <script src="http://www.java.com/js/deployjava.js"></script> <script> var attributes = { code:'applettakesparams.class', archive:'applet_appletwithparameters.jar', width:800,height:50; var parameters = {jnlp_href: 'applettakesparams.jnlp', paramoutsidejnlpfile: 'foooutsidejnlp'; deployjava.runapplet(attributes, parameters, '1.4'); </script> 20

Odczyt parametrów apletu public void init() { final String inputstr = getparameter("paramstr"); final int inputint = Integer.parseInt(getParameter("paramInt")); final String inputoutsidejnlpfile = getparameter("paramoutsidejnlpfile"); 21