Aplikacje Internetowe. Zakres przedmiotu. Plan ramowy. Tworzenie aplikacji internetowych w języku Java w środowisku Eclipse



Podobne dokumenty
Aplikacje Internetowe. przygotował:

Programowanie w Internecie. Podstawy użycia JSP. Paweł Kasprowski. vl06z

Tworzenie aplikacji internetowych w języku Java

Podstawy języka Java. przygotował:

Wybrane działy Informatyki Stosowanej

1 Wprowadzenie do J2EE

Aplikacje Internetowe, Servlety, JSP i JDBC

Języki skryptowe - PHP. Podstawy PHP. Paweł Kasprowski. pawel@kasprowski.pl. vl07

AXIS2 - tworzenie usługi sieciowej i klienta Axis Data Binding. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

prepared by: Programowanie WWW Servlety

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

Aplikacje WWW - laboratorium

Wykład dla studentów Informatyki Stosowanej UJ 2012/2013

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

prepared by: Programowanie WWW Model-View-Controller

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

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

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

OpenLaszlo. OpenLaszlo

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Java jako język programowania

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

Programowanie w Javie 2. Płock, 26 luty 2014 r.

Tworzenie oprogramowania

Środowisko NetBeans. Paweł Boguszewski

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

1 90 min. Aplikacje WWW Harmonogram spotkań, semestr zimowy (studia stacjonarne)

Programowanie w Internecie

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Przegląd i ewaluacja narzędzi do szybkiego tworzenia interfejsu użytkownika (RAD).

Automatyczne generowanie kodu. 4Developers, 26 marca 2010

Programowanie obiektowe

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego radmat radmat@math.uni.lodz.

Programowanie w Sieci Internet JSP ciąg dalszy. Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Plan wykładu. 1. Protokół FTP. 2. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Załącznik 1 instrukcje instalacji

Wybrane działy Informatyki Stosowanej

Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat.

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Zaawansowane aplikacje internetowe

1.Wstęp. 2.Generowanie systemu w EDK

SPRING FRAMEWORK. dr inż. Jakub Chłapioski

Elementy JEE. 1. Wprowadzenie. 2. Prerekwizyty. 3. Pierwszy servlet. obsługa parametrów żądań 4. JavaServer Pages.

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

(argument dla męskiej m. ęści populacji)

Wykład 1: Wprowadzenie do technologii Java

Zaawansowane aplikacje internetowe

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

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

Wybrane działy Informatyki Stosowanej

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK

Programowanie Komponentowe WebAPI

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

MIGRACJA SYSTEMÓW INFORMATYCZNYCH DO TECHNOLOGII JAVA

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

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

WPROWADZENIE DO JĘZYKA JAVA

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Multimedia JAVA. Historia

EJB 3.0 (Enterprise JavaBeans 3.0)

Programowanie współbieżne i rozproszone

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Laboratorium 1 Wprowadzenie do PHP

Ekspert MS SQL Server Oferta nr 00/08

REFERAT PRACY DYPLOMOWEJ

Facelets ViewHandler

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.

Flex 3. Piotr Strzelczyk Wydział EAIiE Katedra Automatyki. Kraków, 2008

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

Aplikacje RMI

Wzorce prezentacji internetowych

Podstawowe wykorzystanie Hibernate

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

INSTALACJA I KONFIGURACJA SERWERA PHP.

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

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

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Ćwiczenie 1. Przygotowanie środowiska JAVA

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Wprowadzenie do J2EE. Maciej Zakrzewicz.

Dokumentacja kompilacji źródeł aplikacji 1.0

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Środowisko publikacyjne oparte na XML-u. Szymon Zioło 1 maja 2004

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

PHP: bazy danych, SQL, AJAX i JSON

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

ZSBD ćwiczenie 4. Obiektowe systemy zarządzania bazą danych. Przygotowanie środowiska pracy. Wymagania: ZSBD ćwiczenie 4

SOP System Obsługi Parkingów

Aplikacje internetowe - laboratorium

Środowiska i platformy programistyczne

Transkrypt:

Aplikacje Internetowe Zakres przedmiotu Tworzenie aplikacji internetowych w języku Java w środowisku Eclipse zużyciem serwera Apache Tomcat Materiały przede wszystkim Internet książki na temat JSP (Java Server Pages), J2EE i ogólnie języka Java oczywiście: www.kasprowski.pl Plan ramowy Podstawy JSP Użycie tagów z biblioteki JSTL Tworzenie servletów A hi k MVC2 Architektura MVC2 Komunikacja z bazą danych: JDBC, Hibernate, JPA Cel: nabycie umiejętności tworzenia aplikacji internetowej a nie tylko zbioru dynamicznych stron WWW 1

Aplikacja internetowa Definicja: Aplikacja uruchamiana na serwerze WWW komunikująca się z użytkownikiem za pomocą przeglądarki internetowej Zalety aplikacji internetowej brak konieczności instalacji dodatkowego oprogramowania na komputerach klientów a co za tym idzie mniejsze wymagania co do jakości tych komputerów łatwość aktualizacji aplikacji w przypadku zmiany wersji nie trzeba aktualizować plików na każdym komputerze a wystarczy aktualizacja na serwerze potencjalna możliwość zdalnego korzystania z aplikacji Wady aplikacji internetowej uboższy interfejs użytkownika (nie wszystko da się zrobić w przeglądarce) większy nakład pracy projektowej, a co za tym idzie nieco większy koszt wykonania większe obciążenie serwera (kosztem mniejszego obciążenia komputerów użytkowników) 2

Dynamiczna generacja stron CGI Common Gateway Interface Wejście: adres, parametry Wyjście: tekst strony html Problem: jak przekazać ć parametry? Metody wysyłania danych Metoda GET Odpowiednik: http://xyz.pl/start?imie=adam&nazwisko=kowalski Metoda POST Parametry wewnątrz wysyłanego pakietu brak ograniczeń na wielkość parametrów Aplikacja CGI Konieczność generacji całej strony Program drukujący tekst na standardowym wyjściu Niewygodne (zwłaszcza, gdy elementy dynamiczne zajmują niewielką część strony) Wygodniej stworzyć stronę HTML i tylko wstawić elementy generowane dynamicznie 3

Dynamiczne wstawki do tekstu html Trzy najważniejsze rozwiązania: PHP najpopularniejsze, własny język oparty początkowo na języku Perl ASP propozycja Microsoft, wstawki w VisualBasic u u JSP wstawki w języku Java JSP Java Server Pages Tworzenie dokumentów html ze wstawkami w Javie Dokumenty przekształcane są w servlety klasy generujące html Serwery JSP Przykładowe serwery: Blazix Tomcat Websphere Standardowa funcjonalność serwera WWW Kompilacja JSP 4

Najprostszy JSP <HTML> <BODY> Hello! The time is now = new java.util.date() </BODY> </HTML> Wstawki w kodzie (scriplet'y) <HTML> <BODY> System.out.println( "Evaluating date now"); java.util.date date = new java.util.date();... Hello! The time is now = date </BODY> </HTML> Scriplet tworzący tekst <HTML> <BODY> System.out.println( "Evaluating date now"); java.util.date t date = new java.util.date(); t... Hello! The time is now out.write( String.valueOf( date )); </BODY> </HTML> 5

Obiekty dostępne w jsp out out.write(...) request request.getparameter(...) request.getremotehost() response response.sendredirect(...) Odczytywanie danych Obiekt request, metoda getparameter( nazwa ) <h1>witaj =request.getparameter( imie )</h1> <p> String imie = (String)request.getParameter( imie ); if(imie.equals( Paweł )) out.print( Ja też mam na imię Paweł! ); </p> Możliwości JSP Mieszanie kodu i html a <TABLE BORDER=2> for ( int i = 0; i < 10; i++ ) { <TR> <TD>Numer</TD> <TD>= i+1</td> </TR> </TABLE> 6

Możliwości JSP Mieszanie kodu i html a <TABLE BORDER=2> for ( int i = 0; i < 10; i++ ) { <TR> <TD>Numer</TD> <TD>= i+1</td> </TR> </TABLE> Dyrektywa page Użycie bibliotek Java <HTML> <BODY> System.out.println( "Evaluating date now" ); java.util.date date = new java.util.date(); Hello! The time is now = date </BODY> </HTML> Dyrektywa page Użycie bibliotek Java @ page import="java.util.*" <HTML> <BODY> System.out.println( "Evaluating date now" ); Date date = new Date(); Hello! The time is now = date </BODY> </HTML> 7

Dyrektywa page Użycie bibliotek Java @ page import="java.util.*,java.text.*" <HTML> <BODY> System.out.println( "Evaluating date now" ); Date date = new Date(); Hello! The time is now = date </BODY> </HTML> Pierwsza aplikacja Kalkulator kredytowy Obliczanie raty kredytu Część prezentacyjna (JSP) Część "logiki biznesowej" (java) Kalkulator kredytowy Obliczenie wysokości miesięcznej raty spłaty kredytu na podstawie jego kwoty, oprocentowania rocznego i liczby rat miesięcznych oproc /12 rata = kwota* 1 1 1+ ( oproc /12) liczba _ rat 8

Parametryzacja Dokument index.jsp zawiera formularz w którym użytkownik wpisuje parametry kredytu kwota na ile lat Formularz wysyłany jest do dokumentu result.jsp, który oblicza ratę Formularz <form action="result.jsp"> kwota: <input type="text" name="kwota"><br/> ile lat: <input type="text" name="lat"><br/> <input type="submit"/> </form> Plik result.jsp Odczytanie parametrów: String strkwota = request.getparameter("kwota"); String strlat = request.getparameter("lat"); Konwersja na liczbę (w Javie niezbędna!): double kwota = Double.parseDouble(strKwota); int lat = Integer.parseInteger(strLat); Wykonanie obliczenia: double rata = kwota * (procent/12)/ (1-(1/Math.pow(1.0+procent/12,lat*12))); 9

Nasze narzędzie pracy Historia Eclipse Założyciele (2001): Borland, IBM, MERANT, QNX Software Systems, Rational Software, Red Hat, SuSE, TogetherSoft, Webgain (Board of Stewards) Kolejni członkowie to m.in.: HP, Oracle, SAP, Ericsson, Intel Licencja CPL (Common Public License) Aktualna wersja: 3.4 (Ganymede) Podstawowe narzędzie pracy w wielu firmach programistycznych! Rozszerzalność Eclipse jest narzędziem uniwersalnym: Eclipse IDE for Java Developers Eclipse IDE for C/C++ Developers PHPEclipse Istnieją dedykowane wersje Eclipse'a (komercyjne): Red Hat Developer Studio IBM Data Studio Borland JBuilder Są to Eclipse'y rozszerzone o własne wtyczki firmy 10

Przykładowe wtyczki Amateras HTMLEditor Sysdeo TomcatPlugin DBViewer Plugin AzzuriClay modelowanie baz danych HibernateTools dostęp do baz danych Omondo EclipseUML Visual Editor tworzenie GUI PHPEclipse Tworzone z użyciem: Plug-In Development Environment Instalacja wtyczek Help->Software Updates Przegranie pakietu do katalogu plugins Tworzenie środowiska Instalacja Java JDK Instalacja Apache Tomcat (darmowy) katalog główny: webapps/root aplikacje: webapps/<nazwa aplikacji> aplikacje: webapps/<nazwa_aplikacji> konfiguracja: conf/server.xml Instalacja Eclipse Instalacja plug-in'u Sysdeo do Eclipse'a 11

Tworzenie projektu Eclipse New Tomcat project: kredyty Katalog /webapp Plik index.jsp Start Tomcat a http://localhost:8080/kredyty Stworzenie formularza startowego (index.jsp) Stworzenie result.jsp Wady rozwiązania Oprocentowanie jest określone na stałe wewnątrz pliku HTML zmiany muszą być dokonywane bezpośrednio w nim Sposób obliczenia raty także jest w pliku HTML Zmiana wyglądu strony zmiana w pliku HTML A więc: łatwo popełnić błąd, który spowoduje, że aplikacja przestanie działać prawidłowo Dalsza rozbudowa aplikacji (np. ściąganie oprocentowania z bazy danych) bardzo utrudnione Rozwiązanie dwuwarstwowe Rozdzielenie części prezentacyjnej od części obliczeniowej Programista (grafik) tworzący interfejs WWW nie musi znać wzoru na obliczanie kredytu Programista tworzący kod obliczający kredyt nie musi wiedzieć gdzie będzie on używany 12

class Kredyt { double procent = 0.05; double kwota; double lat; Klasa Kredyt public Kredyt(double k, double l) { kwota = k; lat = l; public double getrata() { double rata = kwota * (procent/12)/ (1-(1/Math.pow(1.0+procent/12,lat*12))); return rata; Kredyt.java package pl.kasprowski.utils; public class Kredyt { double procent = 0.05; double kwota; double lat; Klasa Kredyt public Kredyt(double k, double l) { kwota = k; lat = l; public double getrata() { double rata = kwota * (procent/12)/ (1-(1/Math.pow(1.0+procent/12,lat*12))); return rata; Kredyt.java Nowy result.jsp Kredyt kredyt = new Kredyt( Double.parseDouble(request.getParameter("kwota")), Double.parseDouble(request.getParameter("lat")) ); out.write("<p>rata wynosi: "+kredyt.getrata()+"</p>"); 13

Nowy result.jsp [2] Kredyt kredyt = new Kredyt( Double.parseDouble(request.getParameter("kwota"), Double.parseDouble(request.getParameter("lat")) ); <p>rata wynosi: =kredyt.getrata()</p> Dodanie konstruktora package pl.kasprowski.utils; public class Kredyt { double procent = 0.05; double kwota; double lat; public Kredyt(double k, double l) { kwota = k; lat = l; public Kredyt(String k, String l) { kwota = Double.parseDouble(k); lat = Double.parseDouble(l); public double getrata() { double rata = kwota * (procent/12)/ (1-(1/Math.pow(1.0+procent/12,lat*12))); return rata; Kredyt.java Dodanie konstruktora package pl.kasprowski.utils; public class Kredyt { double procent = 0.05; double kwota; double lat; public Kredyt(double k, double l) { kwota = k; lat = l; public Kredyt(String k, String l) { this(double.parsedouble(k),double.parsedouble(l)); public double getrata() { double rata = kwota * (procent/12)/ (1-(1/Math.pow(1.0+procent/12,lat*12))); return rata; Kredyt.java 14

Nowy result.jsp [3] Kredyt kredyt = new Kredyt( request.getparameter("kwota"), request.getparameter("lat")) ); <p>rata wynosi: =kredyt.getrata()</p> Brak jakiegokolwiek kodu obliczającego cokolwiek! Obsługa wyjątków Gdy coś nie zadziała tak jak trzeba należy to przewidzieć i "wyłapać" w programie Jeśli nie wyłapiemy wyjątku rezultaty mogą być niespodziewane Wyłapywanie wyjątków: try{...tu kod, który może wygenerować wyjątek... catch(exception ex) {...tu kod obsługujący... Miejsce obsługi wyjątków Strona HTML zaleta można bezpośrednio wypisywać komunikaty wada strona staje się nieczytelna Kod klasy zaleta kod HTML jest czytelny wada w kodzie HTML często i tak trzeba zareagować na wyjątek wada podstawowa nie da się przechwycić wyjątku w naszym konstruktorze 15

try-catch w result.jsp try{ Kredyt kredyt = new Kredyt( request.getparameter("kwota"), request.getparameter("lat")) tp t t")) ); <p>rata wynosi: =kredyt.getrata()</p> catch(numberformatexception ex) {out.write("nie udało się obliczyć raty!"); try-catch w result.jsp try{ Kredyt kredyt = new Kredyt( request.getparameter("kwota")), request.getparameter("lat")) ); out.write("<p>rata wynosi: "+kredyt.getrata()+"</p>"); catch(numberformatexception ex) {out.write("nie udało się obliczyć raty!"); Dyrektywa errorpage Ustawienie strony do obsługi błędu @ page errorpage= /error.jsp Strona error.jsp dostęp do obiektu exception @ page iserrorpage="true" response.setstatus(500); = exception.getclass().getname() 16

Dyrektywa include Dołączanie innych plików do dokumentu <HTML> <BODY> Tutaj będzie zawartość pliku hello.jsp:<br/> @ include file="hello.jsp" A teraz znów jesteśmy w naszym dokumencie </BODY> </HTML> Dziękuję za uwagę 17