Aplikacje Internetowe - .Kalkulator kredytowy • Obliczenie wysoko ›ci miesi...

download Aplikacje Internetowe - .Kalkulator kredytowy • Obliczenie wysoko ›ci miesi ™cznej raty sp‚aty

of 50

  • date post

    28-Feb-2019
  • Category

    Documents

  • view

    213
  • download

    0

Embed Size (px)

Transcript of Aplikacje Internetowe - .Kalkulator kredytowy • Obliczenie wysoko ›ci miesi...

przygotowa: pawel@kasprowski.pl

Aplikacje Internetowe

przygotowa: pawel@kasprowski.pl

Zakres przedmiotu

Tworzenie aplikacji internetowych w jzyku Java w rodowisku Eclipse z uyciem serwera Apache Tomcat z uyciem serwera Apache Tomcat

Materiay przede wszystkim Internet ksiki na temat JSP (Java Server Pages), J2EE i oglnie

jzyka Java oczywicie: www.kasprowski.pl

przygotowa: pawel@kasprowski.pl

Plan ramowy

Podstawy JSP Uycie tagw z biblioteki JSTL Tworzenie servletw Architektura MVC2 Architektura MVC2 Komunikacja z baz danych: JDBC, Hibernate, JPA Cel:

nabycie umiejtnoci tworzenia aplikacji internetowej a nie tylko zbioru dynamicznych stron WWW

przygotowa: pawel@kasprowski.pl

Aplikacja internetowa

Definicja: Aplikacja uruchamiana na serwerze WWW

komunikujca si z uytkownikiem za pomoc przegldarki internetowejprzegldarki internetowej

przygotowa: pawel@kasprowski.pl

Zalety aplikacji internetowej

brak koniecznoci instalacji dodatkowego oprogramowania na komputerach klientw a co za tym idzie mniejsze wymagania co do jakoci tych komputerwkomputerw

atwo aktualizacji aplikacji w przypadku zmiany wersji nie trzeba aktualizowa plikw na kadym komputerze a wystarczy aktualizacja na serwerze

potencjalna moliwo zdalnego korzystania z aplikacji

przygotowa: pawel@kasprowski.pl

Wady aplikacji internetowej

uboszy interfejs uytkownika (nie wszystko da sizrobi w przegldarce)

wikszy nakad pracy projektowej, a co za tym idzie nieco wikszy koszt wykonanianieco wikszy koszt wykonania

wiksze obcienie serwera (kosztem mniejszego obcienia komputerw uytkownikw)

przygotowa: pawel@kasprowski.pl

Dynamiczna generacja stron

CGI Common Gateway Interface Wejcie: adres, parametry Wyjcie: tekst strony html Problem: jak przekaza parametry? Problem: jak przekaza parametry?

przygotowa: pawel@kasprowski.pl

Metody wysyania danych

Metoda GETOdpowiednik:http://xyz.pl/start?imie=Adam&nazwisko=Kowalski

Metoda POSTParametry wewntrz wysyanego pakietu brak

ogranicze na wielko parametrw

przygotowa: pawel@kasprowski.pl

Aplikacja CGI

Konieczno generacji caej strony Program drukujcy tekst na standardowym wyjciu Niewygodne (zwaszcza, gdy elementy dynamiczne

zajmuj niewielk cz strony)zajmuj niewielk cz strony) Wygodniej stworzy stron HTML i tylko wstawi

elementy generowane dynamicznie

przygotowa: pawel@kasprowski.pl

Dynamiczne wstawki do tekstu html

Trzy najwaniejsze rozwizania: PHP najpopularniejsze, wasny jzyk oparty

pocztkowo na jzyku Perl ASP propozycja Microsoft, wstawki w VisualBasicu ASP propozycja Microsoft, wstawki w VisualBasicu JSP wstawki w jzyku Java

przygotowa: pawel@kasprowski.pl

JSP Java Server Pages

Tworzenie dokumentw html ze wstawkami w Javie Dokumenty przeksztacane s w servlety klasy

generujce html

przygotowa: pawel@kasprowski.pl

Serwery JSP

Przykadowe serwery: Blazix Tomcat Websphere Websphere

Standardowa funcjonalno serwera WWW Kompilacja JSP

przygotowa: pawel@kasprowski.pl

Najprostszy JSP

Hello! The time is now

przygotowa: pawel@kasprowski.pl

Wstawki w kodzie (scriplet'y)

...Hello! The time is now

przygotowa: pawel@kasprowski.pl

Scriplet tworzcy tekst

...Hello! The time is now

przygotowa: pawel@kasprowski.pl

Obiekty dostpne w jsp

out out.write(...)

request request.getParameter(...) request.getParameter(...) request.getRemoteHost()

response response.sendRedirect(...)

przygotowa: pawel@kasprowski.pl

Odczytywanie danych

Obiekt request, metoda getParameter(nazwa)

Witaj

przygotowa: pawel@kasprowski.pl

Moliwoci JSP

Mieszanie kodu i htmla

Numer

przygotowa: pawel@kasprowski.pl

Moliwoci JSP

Mieszanie kodu i htmla

Numer

przygotowa: pawel@kasprowski.pl

Dyrektywa page

Uycie bibliotek Java

przygotowa: pawel@kasprowski.pl

Dyrektywa page

Uycie bibliotek Java

Hello! The time is now

przygotowa: pawel@kasprowski.pl

Dyrektywa page

Uycie bibliotek Java

Hello! The time is now

przygotowa: pawel@kasprowski.pl

Pierwsza aplikacja

Kalkulator kredytowy Obliczanie raty kredytu Cz prezentacyjna (JSP) Cz "logiki biznesowej" (java) Cz "logiki biznesowej" (java)

przygotowa: pawel@kasprowski.pl

Kalkulator kredytowy

Obliczenie wysokoci miesicznej raty spaty kredytu na podstawie jego kwoty, oprocentowania rocznego i liczby rat miesicznych

ratliczbaoproc

oprockwotarata

_)12/(11

1

12/*

+

=

przygotowa: pawel@kasprowski.pl

Parametryzacja

Dokument index.jsp zawiera formularz w ktrym uytkownik wpisuje parametry kredytu kwota na ile lat na ile lat

Formularz wysyany jest do dokumentu result.jsp, ktry oblicza rat

przygotowa: pawel@kasprowski.pl

Formularz

kwota: ile lat:

przygotowa: pawel@kasprowski.pl

Plik result.jsp

Odczytanie parametrw:String strKwota = request.getParameter("kwota");String strLat = request.getParameter("lat");

Konwersja na liczb (w Javie niezbdna!): Konwersja na liczb (w Javie niezbdna!):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)));

przygotowa: pawel@kasprowski.pl

Nasze narzdzie pracy

przygotowa: pawel@kasprowski.pl

Historia Eclipse

Zaoyciele (2001): Borland, IBM, MERANT, QNX Software Systems, Rational Software, Red Hat, SuSE, TogetherSoft, Webgain (Board of Stewards)

Kolejni czonkowie to m.in.: HP, Oracle, SAP, Kolejni czonkowie to m.in.: HP, Oracle, SAP, Ericsson, Intel

Licencja CPL (Common Public License) Aktualna wersja: 3.4 (Ganymede) Podstawowe narzdzie pracy w wielu firmach

programistycznych!

przygotowa: pawel@kasprowski.pl

Rozszerzalno

Eclipse jest narzdziem uniwersalnym: Eclipse IDE for Java Developers Eclipse IDE for C/C++ Developers PHPEclipse PHPEclipse

Istniej dedykowane wersje Eclipse'a (komercyjne): Red Hat Developer Studio IBM Data Studio Borland JBuilder

S to Eclipse'y rozszerzone o wasne wtyczki firmy

przygotowa: pawel@kasprowski.pl

Przykadowe wtyczki

Amateras HTMLEditor Sysdeo TomcatPlugin DBViewer Plugin AzzuriClay modelowanie baz danych AzzuriClay modelowanie baz danych HibernateTools dostp do baz danych Omondo EclipseUML Visual Editor tworzenie GUI PHPEclipse Tworzone z uyciem: Plug-In Development

Environment

przygotowa: pawel@kasprowski.pl

Instalacja wtyczek

Help->Software Updates Przegranie pakietu do katalogu plugins

przygotowa: pawel@kasprowski.pl

Tworzenie rodowiska

Instalacja Java JDK Instalacja Apache Tomcat (darmowy)

katalog gwny: webapps/ROOT aplikacje: webapps/ aplikacje: webapps/ konfiguracja: conf/server.xml

Instalacja Eclipse Instalacja plug-in'u Sysdeo do Eclipse'a

przygotowa: pawel@kasprowski.pl

Tworzenie projektu Eclipse

New Tomcat project: kredyty Katalog /webapp Plik index.jsp Start Tomcata Start Tomcata http://localhost:8080/kredyty Stworzenie formularza startowego (index.jsp) Stworzenie result.jsp

przygotowa: pawel@kasprowski.pl

Wady rozwizania

Oprocentowanie jest okrelone na stae wewntrz pliku HTML zmiany musz by dokonywane bezporednio w nim

Sposb obliczenia raty take jest w pliku HTML Sposb obliczenia raty take jest w pliku HTML Zmiana wygldu strony zmiana w pliku HTML A wic: atwo popeni bd, ktry spowoduje, e

aplikacja przestanie dziaa prawidowo Dalsza rozbudowa aplikacji (np. ciganie

oprocentowania z bazy danych) bardzo utrudnione

przygotowa: pawel@kasprowski.pl

Rozwizanie dwuwarstwowe

Rozdzielenie czci prezentacyjnej od czci obliczeniowej

Programista (grafik) tworzcy interfejs WWW nie musi zna wzoru na obliczanie kredytumusi zna wzoru na obliczanie kredytu

Programista tworzcy kod obliczajcy kredyt nie musi wiedzie gdzie bdzie on uywany

przygotowa: pawel@kasprowski.pl

Klasa Kredytclass Kredyt {double procent = 0.05;double kwota;double lat;

public Kredyt(double k, double l) { kwota = k;lat = l;lat = l;

}

public double getRata() {double rata = kwota * (procent/12)/

(1-(1/Math.pow(1.0+procent/12,lat*12)));return rata;

}}

Kredyt.java

przygotowa: pawel@kasprowski.pl

Klasa Kredytpackage pl.kasprowski.utils;

public class Kredyt {double procent = 0.05;double kwota;double lat;

public Kredyt(double k, double l) { 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

przygotowa: pawel@kasprowski.pl

Nowy result.jsp

przygotowa: pawel@kasprowski.pl

Nowy result.jsp [2]

Rata wynosi:

przygotowa: pawel@kasprowski.pl

Dodanie konstruktorapackage 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