Java rozszerzenie. dr. A. Dawid



Podobne dokumenty
Java. dr. A. Dawid. 1. Java2D AWT SWING Inicjalizacja Metody 2. JDBC Connector 3. Servlety Serwer internetowy Klasa HttpServlet 4. JSP 5.

JAVA I BAZY DANYCH. MATERIAŁY:

Java Database Connectivity

prepared by: Programowanie WWW Model-View-Controller

Java i jej wykorzystanie do tworzenia dynamicznych aplikacji Webowych

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

Programowanie w języku Java

prepared by: Programowanie WWW Servlety

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

JDBC (Java Database Connectivity vit )

Aplikacje bazodanowe. dr inż. Arkadiusz Mirakowski

Plan wykładu. Dostęp do bazy danych. Architektura JDBC. Dostęp do baz danych z aplikacji Java EE

JAVA bazy danych. na bazie: Język Java - Podstawy Programowania - Jacek Rumiński

1 Wprowadzenie do J2EE

Metody dostępu do danych

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.

Architektury Usług Internetowych. Laboratorium 1. Servlety

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

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

Aplikacje Internetowe

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

JDBC. Plan ćwiczenia. Wywoływanie poleceń SQL z języków programowania. Plan ćwiczenia cd. Wprowadzenie do laboratorium

Połączenie z bazą danych

JavaServer Pages. Konrad Kurdej Karol Strzelecki

Wzorce prezentacji internetowych

Typy sterowników. Rozdział 21 JDBC. Podstawowe kroki aplikacji. Historia. Program napisany w języku Java JDBC API. Menadżer sterowników JDBC

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

Łączenie z bazą danych przykładowa klasa infpolaczenie import java.sql.drivermanager; import java.sql.connection; import java.sql.

Podstawy otwartych języków programowania Java Database Connectivity (JDBC)

Programowanie w języku Java

Aplikacje WWW - laboratorium

Wprowadzenie do JDBC z wykorzystaniem bazy H2

Aplikacje Internetowe

przygotował: Bazy danych Paweł Kasprowski Wersja 2006Z

Przegląd technologii JSP

Wykorzystywanie parsera DOM w programach Java i PL/SQL

Wybrane działy Informatyki Stosowanej

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

Aplikacja wielowątkowa prosty komunikator

JDBC - Obsługa baz danych w języku Java

Java Database Connectivity

Architektury Usług Internetowych. Laboratorium 1 Servlety

Połączenia między bazami danych i programem w języku Java część 2

Java wybrane technologie spotkanie nr 3. Serwlety

Programowanie w języku Java. Bazy danych SQLite w Javie

Programowanie komputerów. Wykład 10: Dostęp do baz danych z poziomu aplikacji Java. (JDBC Database Access)

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

Aplikacje WWW - laboratorium

Rozdział 9 Obsługa baz danych w języku Java

Architektura Model-View-Controller

Java w Internecie - czy to ma sens? ;)

Bartosz Jachnik - Kino

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

Podejście obiektowe do relacyjnych baz danych Hibernate.

Protokół JDBC współpraca z relacyjnymi bazami danych lab4. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Java wybrane technologie spotkanie nr 4. Serwlety c.d.

Analiza porównawcza technologii tworzenia aplikacji internetowych dla baz danych Oracle

JDBC w LoXiMie. Interfejs Java Database Connectivity dla systemu LoXiM. Adam Michalik 2008

Analiza porównawcza technologii tworzenia aplikacji internetowych dla baz danych Oracle

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 obiektowe

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

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Programowanie obiektowe

Projektowanie aplikacji J2EE w architekturze Model-View-Controller

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

Wzorce logiki dziedziny

Aplikacja wielow tkowa prosty komunikator

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

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

JAVA. Strumienie wejścia i wyjścia. Pliki - zapis i odczyt

Podstawowe wykorzystanie Hibernate

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

Protokół JDBC współpraca z relacyjnymi bazami danych lab3

DB+frontend Inne języki H2. Bazy Danych i Systemy informacyjne Wykład 9. Piotr Syga

Bazy danych wykład dwunasty

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle

Przykłady interfejsu TCP i UDP w Javie

Wykład 2: Podstawy Języka


Java, bazy danych i SSL

Aplikacje Internetowe, Servlety, JSP i JDBC

Zaawansowane aplikacje internetowe laboratorium

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

Aktywne i dynamiczne strony WWW. Elementy projektowania stron WWW. Część 3. Formularze HTML przykład. Formularze HTML. dr inŝ.

Aplikacje internetowe i rozproszone - laboratorium

Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5.

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

Java EE: Serwlety i filtry serwletów

Programowanie Obiektowe Java

Wywoływanie metod zdalnych

Programowanie Obiektowe Java

Programowanie obiektowe

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

Aplikacje WWW - laboratorium

akademia androida Składowanie danych część VI

JAVA W SUPER EXPRESOWEJ PIGUŁCE

METODY PROGRAMOWANIA

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

Transkrypt:

Java rozszerzenie PLAN WYKŁADU 1. Java2D AWT SWING Inicjalizacja Metody 2. JDBC Connector 3. Programowanie sieciowe Socket ServerSocket 4. Servlety Serwer internetowy Klasa HttpServlet 5. JSP 6. Java3D dr. A. Dawid

Java graficzny interface użytkownika AWT Abstract Window Toolkit Biblioteka komponentów graficznych Okna Komponenty Grafika rastrowa Interakcja (obsługa zdarzeń)

Platforma JAVA 2 Java SWING JComponent - rozszerzenie klasy Cointainer biblioteki AWT

Java SWING

Java SWING Architektura MVC Model generowanie sygnałów (event) View renderowanie komponentów look Controller reakcja komponnetu na urządzenie wejściowe feel Niezależność od plaformy Look-and-feel taki sam na Linux,Windows, Macintosh

Java2D Rozszerzona grafika 2-wymiarowa Public void Paint (Graphics g) Graphics2D g2 = (Graphics2D) g ; Inicjalizacja poprzez rzutowanie obiektu Graphics na obiekt Graphics2D

Właściwości Java2D Rysowanie zewnętrznych krawędzi Wypełnianie kolorem lub wzorem Wiele nowych definicji figur Rysowanie trzcionek Rysowanie obrazów gp=new GradientPaint(0f,0f,blue,0f,30f,green); G2.setPaint(gp);

Obiekty Java2D Graphics2D Point2D Line2D Rectangle2D,RoundRectangle2D,Arc2D,Ellipse2D QuadCurve2D,CubicCurve2D GeneralPath Area BufferedImage Przykłady.

BufferedImage Java2D 1. Wczytywanie obrazu do pamięci. BufferedImage img = null; try img = ImageIO.read(new File("zima.jpg")); catch (IOException e) Aplet try URL url = new URL(getCodeBase(), "zima.jpg"); img = ImageIO.read(url); catch (IOException e)

BufferedImage Java2D 2. Rysowanie obrazu. void Graphics2D.drawImage(BufferedImage img, BufferedImageOp op, int x, int y) try img = ImageIO.read(urlx); int w = img.getwidth(null); int h = img.getheight(null); bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB); Graphics g = bi.getgraphics(); g.drawimage(img, 0, 0, null); catch (IOException e)

BufferedImage Java2D 3. Zapis obrazu. try File outputfile = new File("saved.jpg"); ImageIO.write(bi, "jpg", outputfile); catch (IOException e) Przykład PLANSZA.

JDBC TM Java DataBase Connectivity Ver. 2.0 Połączenie baz danych z interfejsem programistycznym JAVA MySQL http://dev.mysql.com/downloads/connector/j/3.1.html

JDBC TM Obiekty DriverManager klasa obsługująca warstwę pomiędzy JDBC a użytkownikiem. Wywołanie bezpośrednie klasy sterownika. Class.forName("com.mysql.jdbc.Driver").newInstance(); Nawiązania połączenia getconnection( parse xml format") Protocol://computer/path?param1=value1&param2=value2 Ex. "jdbc:mysql://localhost/krasnal?user=krasnal&password=krasnal" Statement klasa wysyłająca proste zapytania SQL.

JDBC TM Obiekty Statement klasa wysyłająca proste zapytania SQL. Podklasy. PreparedStatement,CallableStatement Metody Statement st = c.createstatement(); Umieszcza wyrażenie w kontenerze. ResultSet rs = st.executequery("select * FROM adresy"); Wykonuje zapytanie SQL. int rows=st.executeupdate("create DATABASE test");

JDBC TM Obiekty stmt.execute(zapytaniesqloniewiadomymwyniku); while(true) int rowcount = stmt.getupdatecount(); if(rowcount > 0) // To jest UPDATE System.out.println( Wiersze zmienione = " + count); stmt.getmoreresults(); continue; if(rowcount = 0) // komendy DDL lub update = 0 System.out.println(" nic się nie zmienilo lub komenda DDL ); stmt.getmoreresults(); continue;

JDBC TM Obiekty //Czy to są może wiersze danych ResultSet rs = stmt.getresultset(); if(rs!= null)... // pobrać informacje na temat kolumn while(rs.next())... // przetwarzanie danych stmt.getmoreresults(); continue; break; // Nie ma więcej zapytań

JDBC TM Obiekt ResultSet ResultSet r = stmt.executequery("select a, b, c FROM Table1"); while (r.next()) // wydruk wartości dla konkretnego wiersza int i = r.getint("a"); String s = r.getstring("b"); float f = r.getfloat("c"); System.out.println(" i = " + i + " " + s + " " + f);

JDBC TM Duże ilości danych Statement stmt = con.createstatement(); ResultSet r = stmt.executequery( SELECT x FROM Table2 ); // Pobieraj wartości z kolumny jeden w porcjach po 4 kb: byte buff = new byte[4096]; while (r.next()) InputStream fin = r.getasciistream(1); for (;;) int size = fin.read(buff); if (size == -1) // koniec strumienia break; // Wypisanie bufora: output.write(buff, 0, size);

JDBC TM PreparedStatement PreparedStatement pstmt = con.preparestatement( "UPDATE table4 SET imie =? WHERE jezyk =?"); pstmt.setstring(1, "John"); pstmt.setstring(2, "Ang"); pstmt.claearprameters()//reset parametrów

Przykład JDBC TM import java.sql.*; import java.io.*; public class testsql public static void main(string[] Args) try //ladowanie sterownika jdbc Class.forName("com.mysql.jdbc.Driver").newInstance(); catch (Exception e) System.err.println("cos nie tak ze sterownikiem:\n"+e); try //nawiazanie polaczenia z baza danych krasnal

JDBC TM Connection c =DriverManager.getConnection ("jdbc:mysql://localhost/krasnal?user=krasnal&password=krasnal"); //operacja na bazie danych Statement st = c.createstatement(); ResultSet rs = st.executequery("select * FROM adresy"); while (rs.next()) System.out.println(rs.getString(1)+" +rs.getstring(2)+" "+rs.getstring(3)); rs.close(); st.close(); c.close(); catch (SQLException e) System.out.println(e);

SERVLET Aplikacja wykonywana w środowisku Servera www Zestaw klas do obsługi protokołu. servlet.jar Serwery www: Tomcat Jacarta project Resin import javax.servlet.http.*; import javax.servlet.*;

SERVLET Obiekty pakietu Klasa HttpServlet klasa abstrakcyjna/fabrykująca klasy potomne Serializable, serwery wielowątkowe, dostęp Metody wywoływane przez serwer. doget,dopost,doput,dodelete,dohead, dooptions,dotrace,getlastmodified

SERVLET public void doget ( HttpServletRequest req, HttpServletResponse res ) throws ServletException, IOException Interface HttpServletRequest Interface HttpServletResponse Ciała metod specyficzne dla danego serwera.

SERVLET HttpServletRequest Wybrane metody getcharacterencoding() getcontentlength() getcontenttype() getparameter(string name) getprotocol() getreader() getremoteaddr() getremotehost() getservername() getserverport()

SERVLET HttpServletResponse Wybrane metody getbuffersize() getwriter() getcharacterencoding() setbuffersize(int rozmiar) setcontentlength(int dlugosc) setcontenttype(string typ)

doget SERVLET public void doget(httpservletrequest req,httpservletresponse res)throws ServletException, IOException res.setcontenttype("text/html"); PrintWriter pw = res.getwriter(); pw.println("<head>"); pw.println("<title>nasz Servlet</title>"); pw.println("</head>"); pw.println("<body bgcolor=antiquewhite>"); pw.println("<h1>pierwszy serwlet</h1>"); pw.println("</body>"); pw.close();

dopost SERVLET public void dopost(httpservletrequest req,httpservletresponse res)throws ServletException, IOException res.setcontenttype("text/html"); PrintWriter pw = res.getwriter(); pw.println("<head>"); pw.println("<title>nasz Servlet</title>"); pw.println("</head>"); pw.println("<body bgcolor=antiquewhite>"); pw.println("<h1>pierwszy serwlet</h1>"); String imie=req.getparameter("imie"); pw.println(imie+"<br>"); pw.println("</body>"); pw.close();

SERVLET Przykład 1 /* Prosty servlet Obsluga zwrotna */ import java.io.*; import java.util.*; import javax.servlet.http.*; import javax.servlet.*; public class ServletNasz extends HttpServlet public void doget ( HttpServletRequest req, HttpServletResponse res ) throws ServletException, IOException res.setcontenttype("text/html"); PrintWriter pw = res.getwriter(); pw.println("<head>"); pw.println("<meta http-equiv=\"content-type\" content=\"text/html; charset=windows-1250\">"); pw.println("<title>nasz Servlet</title>"); pw.println("</head>");

SERVLET Przykład 1 pw.println("<body bgcolor=antiquewhite>"); pw.println("<h1>dodaj dane</h1>"); pw.println("<form method=post action=servletnasz>"); pw.println("<input type=text name=imie>-imie<br>"); pw.println("<input type=text name=nazwisko>nazwisko<br>"); pw.println("<input type=text name=telefon>-telefon<br>"); pw.println("<input type=submit value=wyslij>"); pw.println("</form>"); pw.println("</body>"); pw.close(); public void dopost ( HttpServletRequest req, HttpServletResponse res ) throws ServletException, IOException res.setcontenttype("text/html"); PrintWriter pw = res.getwriter();

SERVLET Przykład 1 pw.println("<head>"); pw.println("<meta http-equiv=\"content-type\" content=\"text/html; charset=iso-8859-1\">"); pw.println("<title>nasz Servlet</title>"); pw.println("</head>"); pw.println("<body bgcolor=antiquewhite>"); pw.println("<h1>wynik</h1>"); String imie=req.getparameter("imie"); String nazwisko=req.getparameter("nazwisko"); String telefon=req.getparameter("telefon"); pw.println(imie+"<br>"); pw.println(nazwisko+"<br>"); pw.println(telefon+"<br>"); pw.println("</body>"); pw.close(); public ServletNasz()

SERVLET Przykład 2 (MySQL) /* Prosty servlet Obsluga zwrotna */ import java.io.*; import java.util.*; import java.sql.*; import javax.servlet.http.*; import javax.servlet.*; public class ServletBaza extends HttpServlet public void CzytajBaze(PrintWriter pw) try //ladowanie sterownika jdbc Class.forName("com.caucho.jdbc.mysql.Driver").newInstance(); catch (Exception e) pw.println("cos nie tak ze sterownikiem:\n"+e);

SERVLET Przykład 2 (MySQL) try //nawiazanie polaczenia z baza danych Connection c = DriverManager.getConnection("jdbc:mysql_caucho://localhost:33 06/alex"); //operacja na bazie danych Statement st = c.createstatement(); ResultSet rs = st.executequery("select * FROM adresy"); pw.println("<table border=1>"); while (rs.next()) pw.println("<tr><td>"+rs.getstring(3)+"</td><td>"+rs.getstrin g(4)+"</td><td>"+rs.getstring(5)+"</td></tr>"); pw.println("</table>");

SERVLET Przykład 2 (MySQL) rs.close(); st.close(); c.close(); catch (SQLException e) pw.println(e); public void ZapiszDoBazy(PrintWriter pw,string imie,string nazwisko,string telefon) try //ladowanie sterownika jdbc Class.forName("com.caucho.jdbc.mysql.Driver").newInstance(); catch (Exception e)

SERVLET Przykład 2 (MySQL) pw.println("cos nie tak ze sterownikiem:\n"+e); try //nawiazanie polaczenia z baza danych Connection c = DriverManager.getConnection("jdbc:mysql_caucho://localhost:33 06/alex"); //operacja na bazie danych Statement st = c.createstatement(); int rows = st.executeupdate("insert INTO adresy (imie,nazwisko,telefon) VALUES ('"+imie+"','"+nazwisko+"','"+telefon+"')"); pw.println("wynik dodania="+rows+"<br>"); st.close(); c.close();

SERVLET Przykład 2 (MySQL) catch (SQLException e) pw.println(e); public void doget ( HttpServletRequest req, HttpServletResponse res ) throws ServletException, IOException res.setcontenttype("text/html"); PrintWriter pw = res.getwriter(); pw.println("<head>"); pw.println("<meta http-equiv=\"content-type\" content=\"text/html; charset=windows-1250\">"); pw.println("<title>nasz Servlet</title>"); pw.println("</head>"); pw.println("<body bgcolor=antiquewhite>");

SERVLET Przykład 2 (MySQL) pw.println("<h1>dodaj dane</h1>"); pw.println("<form method=post action=servletbaza>"); pw.println("<input type=text name=imie>-imie<br>"); pw.println("<input type=text name=nazwisko>nazwisko<br>"); pw.println("<input type=text name=telefon>-telefon<br>"); pw.println("<input type=submit value=wyslij>"); pw.println("</form>"); pw.println(); CzytajBaze(pw); pw.println("</body>"); pw.close(); public void dopost ( HttpServletRequest req, HttpServletResponse res ) throws ServletException, IOException res.setcontenttype("text/html"); PrintWriter pw = res.getwriter();

SERVLET Przykład 2 (MySQL) pw.println("<head>"); pw.println("<meta http-equiv=\"content-type\" content=\"text/html; charset=iso-8859-1\">"); pw.println(); pw.println("<title>nasz Servlet</title>"); pw.println("</head>"); pw.println("<body bgcolor=antiquewhite>"); pw.println("<h1>wynik</h1>"); String imie=req.getparameter("imie"); String nazwisko=req.getparameter("nazwisko"); String telefon=req.getparameter("telefon"); pw.println(imie+"<br>"); pw.println(nazwisko+"<br>"); pw.println(telefon+"<br>"); ZapiszDoBazy(pw,imie,nazwisko,telefon); pw.println("</body>"); pw.close(); public ServletBaza()

JSP (Java server pages) Integracja języka JAVA i JAVASCRIPT w Kod wykonywany przez serwer www. ZNACZNIKI: <%-- Komentarz --%> <%! public void Pisz() %> deklaracje metod <% Pisz(); %> wykonanie kodu <%= imie %> wypisanie wyrażenia

JSP (Java server pages) PRZYKŁAD FORMULARZ: <%@ page import='java.util.*' %> <%@ page import='java.io.*' %> <%@ page import='java.sql.*' %> <%! String[] text; String Error; int rozmiar; public void CzytajBaze() int i=0; text = new String[32]; try //ladowanie sterownika jdbc Class.forName("com.caucho.jdbc.mysql.Driver").newInstance(); catch (Exception e) Error="cos nie tak ze sterownikiem: "+e;

JSP (Java server pages) try //nawiazanie polaczenia z baza danych Connection c = DriverManager.getConnection("jdbc:mysql_caucho://localhost:33 06/alex"); //operacja na bazie danych Statement st = c.createstatement(); ResultSet rs = st.executequery("select * FROM adresy"); while (rs.next()) text[i]="<tr><td>"+rs.getstring(3)+"</td><td>"+rs.getstring(4 )+"</td><td>"+rs.getstring(5)+"</td></tr>"; i++; rozmiar=i; if(rozmiar>31) rozmiar=31;

JSP (Java server pages) rs.close(); st.close(); c.close(); catch (SQLException e) Error="Blad:"+e; %> <% String fimie=(string)request.getparameter("imie"); String fnazwisko=(string)request.getparameter("nazwisko"); String ftelefon=(string)request.getparameter("telefon"); %> <html> <head><title>wypelnienie formularza</title></head> <body bgcolor=#ffffff>

JSP (Java server pages) <h1>wartosci do zapisania:</h1> <H4>Imie: <%= fimie %><BR>Nazwisko: <%= fnazwisko %><BR>Telefon: <%= ftelefon %></H4> <P> <% out.println("aktualny czas: " + new java.util.date()); %> <% CzytajBaze(); %> <% if(error==null) %> <H2 style="color: blue;">baza adresowa</h2> <table border=1> <tr style="color: green;background-color: yellow;font: 28px bold"><td>imie</td><td>nazwisko</td><td>telefon</td></tr> <% for(int i=0;i<rozmiar;i++) out.println(text[i]); %> </table>

JSP (Java server pages) <% else%><p style="color: #FF0000;"><% out.println(error); %> </p> </P> </body> </html>