Programowanie obiektowe
description
Transcript of Programowanie obiektowe
Programowanie obiektoweAndrzej 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 JavaScript – komputer użytkownika CGI, Perl, C - serwer PHP - serwer Java applet – komputer użytkownika Java servlet - serwer ASP, ASP.NET, C# - serwer
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”.
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>
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ść”>
Przykładowy aplet
import java applet.*;
public class ProstyAplet extends Applet {
public void paint(Graphics g) {
g.drawText(20,10,”To ja ProstyAplet”);
}
}
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}
}
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ę.
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);
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);
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
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.
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(…
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
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>
Tworzenie apletu w NetBeans
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(); } } …
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)); }