Programowanie obiektowe

19
Programowani e obiektowe Andrzej Ziółkowski Wykład 5

description

Programowanie obiektowe. Andrzej Ziółkowski Wykład 5. Aplikacje internetowe. Miejsce działania programu – serwer, komputer użytkownika Instalowanie programów, dostępność Aktualizacje oprogramowania Bezpieczeństwo Bezstanowość. Programy internetowe. HTML, CSS, XML, XHTML - PowerPoint PPT Presentation

Transcript of Programowanie obiektowe

Page 1: Programowanie obiektowe

Programowanie obiektoweAndrzej Ziółkowski

Wykład 5

Page 2: Programowanie obiektowe

Aplikacje internetowe Miejsce działania programu – serwer,

komputer użytkownika Instalowanie programów, dostępność Aktualizacje oprogramowania Bezpieczeństwo Bezstanowość

Page 3: Programowanie obiektowe

Programy internetowe HTML, CSS, XML, XHTML JavaScript – komputer użytkownika CGI, Perl, C - serwer PHP - serwer Java applet – komputer użytkownika Java servlet - serwer ASP, ASP.NET, C# - serwer

Page 4: Programowanie obiektowe

Aplet – zasada działaniaAplet – program napisany w języku Java, uruchamiany ze

stron WWW w przeglądarce.

Przechowywany (po skompilowaniu) na serwerze razem ze stronami HTML

Przesyłany razem ze stronami HTML na komputer użytkownika i tam uruchamiany

Korzysta z wydzielonego obszaru (okna) na stronie HTML

Tworzony jako klasa dziedzicząca po klasie Applet z pakietu java,applet lub javax.swing.JApplet. Odpowiedni obiekt tej klasy tworzy przeglądarka po załadowaniu strony HTML, gdzie aplet jest „osadzony”.

Page 5: Programowanie obiektowe

Osadzanie apletu na stronie HTML <html> <head> <title>Cw2</title> <meta content="text/html; charset=windows-1250" http-equiv="Content-

Type"> <link href="std1.css" type="text/css" rel="stylesheet"> </head> <body> Cw2 - Program rysujący:<br><br> <applet code="cw2/cw2.class" archive="cw2.jar" width="500" height="350"> </applet> <br><br> Źródło: <a href="cw2.java">cw2.java</a> </body> </html>

<applet code= " aplet.class" width="500" height="350"> </applet>

Page 6: Programowanie obiektowe

Parametry apletu code=”plik.class” width=”400” height=”300” codebase=”adres URL” archive=”plik.jar” name=”nazwa apletu” mayscript vspace=”10” hspace=”10” align=”left” alt=„”tekst wyświetlany gdy nie można uruchomić” <param name=”nazwa” value=”wartość”>

Page 7: Programowanie obiektowe

Przykładowy aplet

import java applet.*;

public class ProstyAplet extends Applet {

public void paint(Graphics g) {

g.drawText(20,10,”To ja ProstyAplet”);

}

}

Page 8: Programowanie obiektowe

Najważniejsze składowe apletuimport java applet.*;public class NazwaApletu extends Applet {

public void init() { // inicjacja apletu}public void start() { // wznowienie pracy}public void stop() { // wstrzymanie pracy}public void destroy() { // zamykanie okna przeglądarki}public void paint(Graphics g) { // malowanie}public void repaint() { // odświeżanie po zmianie wyglądu}

}

Page 9: Programowanie obiektowe

Inicjacja apletu

Obiekt apletu tworzy przeglądarka na podstawie danych ze strony HTML

Metoda init() jest wywoływana tylko raz na początku działania apletu ale po utworzeniu obiektu i ustaleniu środowiska pracy.

W konstruktorze dane potrzebne w aplecie mogą być jeszcze niedostępne i dlatego wprowadzono metodę init() wywoływaną później aby tam robić inicjację.

Page 10: Programowanie obiektowe

Wyświetlanie informacji w aplecie

Za wygląd aplety odpowiedzialna jest metoda paint wywoływana gdy trzeba odmalować obszar lub część obszaru apletu

Metoda paint powinna zawierać malowanie całego obszaru apletu

Do malowania używamy metod z klasy Graphics np.: g.drawText(x,y,”tekst”); g.drawRect(x,y,w,h);

Page 11: Programowanie obiektowe

Tworzenie okien dialogowych Za pomocą apletu można tworzyć złożone programy z

nowymi okami dialogowymi do wprowadzania danych.

Dialog dlg1 = new Dialog(this);// … // budowanie dialogu// …dlg1.setVisible(true);

Page 12: Programowanie obiektowe

Pobieranie parametrów z HTML Wstawiając aplet w pliku HTML możemy podać dodatkowe

parametry:<applet code=”ap.class” width=400 height=300>

<param name=par1 value=100><param name=par2 value=”tekst”>

</applet> W aplecie dostęp do parametrów zapewnia metoda

getParameter:int par1;String s = getParameter(”par1”);if (s == null)

par1 = 10; // wartość domyślnaelse

par1 = Integer.parseInt(s); // podstawienie wartości

Page 13: Programowanie obiektowe

Pobieranie informacji z linii adresu W aplikacjach internetowych parametry miedzy

kolejno wyświetlanymi stronami są często przekazywane jako uzupełnienie adresu URL np.

http://www.strona.pl?par1=val1@par2=val2

Parametry te można pobrać wykorzystując metodę getDocumentBase()

String s = getDocumentBase().ToString();

W polu s zostanie umieszczona cała linia adresu, z której można wyodrębnić potrzebne informacje.

Page 14: Programowanie obiektowe

Aplety i JavaScript Wymagany paramet apletu mayscript. Wykorzystujemy klasę JSObject:

import netscape.javascript.*;jscript = JSObject.getWindow(this);

Wywołanie funkcji JavaScript jscript.call(nazwaFunkcji,tablicaParametrów);

Użycie JavaScript w aplecie jscript.eval(TekstKomendyJavaScript);

Dostęp do metod apletu w JavaScript document.nazwaApletu.metodaApletu(…

Page 15: Programowanie obiektowe

Ograniczenia apletów

Powód – bezpieczeństwo Aplety nie mają dostępu do plików na komputerze

użytkownika. Nie mogą uruchamiać programów na komputerze

użytkownika. Mogą się komunikować jedynie z serwerem, z którego

zostały pobrane. Wyjątki

Aplety uruchamiane w appletviewer Aplety podpisane

Page 16: Programowanie obiektowe

Przykład apletu – wybór koloruStrona HTML <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01

Transitional//EN"> <html> <head> <title>Cw4a</title> <meta content="text/html; charset=windows-1250" http-

equiv="Content-Type"> <link href="std1.css" type="text/css" rel="stylesheet"> </head> <body> Cw4a - Wybieranie koloru:<br><br> <applet code="cw4/cw4.class" archive="cw4.jar" width="365"

height="420"> </applet> <br><br> </body> </html>

Page 17: Programowanie obiektowe

Tworzenie apletu w NetBeans

Page 18: Programowanie obiektowe

Przykład apletu – wybór koloru package cw4; public class cw4 extends javax.swing.JApplet { /** Initializes the applet cw4 */ public void init() { try { java.awt.EventQueue.invokeAndWait(new Runnable() { public void run() { initComponents(); } }); } catch (Exception ex) { ex.printStackTrace(); } } …

Page 19: Programowanie obiektowe

Przykład apletu – wybór koloru private void niebieskiMouseMoved(java.awt.event.MouseEvent evt){ aktualny.setBackground(new java.awt.Color(0, 0, 255)); } private void niebieskiMouseClicked(java.awt.event.MouseEvent evt) { wybrany.setBackground(new java.awt.Color(0 , 0, 255 )); } private void zielonyMouseMoved(java.awt.event.MouseEvent evt) { aktualny.setBackground(new java.awt.Color(0,255,0)); } private void zielonyMouseClicked(java.awt.event.MouseEvent evt) { wybrany.setBackground(new java.awt.Color(0,255,0)); } private void czerwonyMouseMoved(java.awt.event.MouseEvent evt) { aktualny.setBackground(new java.awt.Color(255,0,0)); } private void czerwonyMouseClicked(java.awt.event.MouseEvent evt) { wybrany.setBackground(new java.awt.Color(255,0,0)); }