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



Podobne dokumenty
Java rozszerzenie. dr. A. Dawid

JavaScript. Wprowadzony wraz z Netscape Navigator 2.0 w celu dodania interaktywności do statycznej strony HTML.

Kurs WWW wykład 6. Paweł Rajba

Krótki kurs JavaScript

Współdziałanie przeglądarki i skryptów w pliku HTML (lub XML), oraz współdziałanie przeglądarki i ekranu ilustruje niżej położony rysunek.

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Zdarzenia w JavaScript (Zajęcia r.)

CZYM JEST JAVASCRIPT?

JavaScript - wykład 4. Zdarzenia i formularze. Obsługa zdarzeń. Zdarzenia. Mysz. Logiczne. Klawiatura. Beata Pańczyk

JAVASCRIPT (cz. IV) ĆWICZENIA DO SAMODZIELNEGO WYKONANIA materiały dydaktyczne dla słuchaczy opracowanie: by Arkadiusz Gawełek, Łódź

Wykład 03 JavaScript. Michał Drabik

HTML ciąg dalszy. Listy, formularze

JAVAScript tablice, przekazanie danych do funkcji, obiekty Date i window

Zdarzenia Zdarzenia onload i onunload

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

JAVA I BAZY DANYCH. MATERIAŁY:

Bazy Danych i Usługi Sieciowe

JavaScript. mgr inż. Remigiusz Pokrzywiński

Java Database Connectivity

Podstawy JavaScript ćwiczenia

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

JAVAScript w dokumentach HTML - przypomnienie

prepared by: Programowanie WWW Model-View-Controller

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

Wzorce prezentacji internetowych

Obiektowe bazy danych

Java i jej wykorzystanie do tworzenia dynamicznych aplikacji Webowych

Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak:

Aplikacje WWW - laboratorium

Kurs HTML 4.01 TI 312[01]

Rys.2.1. Drzewo modelu DOM [1]

JAVAScript w dokumentach HTML (1)

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Wybrane działy Informatyki Stosowanej

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Tworzenie aplikacji internetowych E14

Zajęcia 4 - Wprowadzenie do Javascript

LABORATORIUM 2 WSTĘP DO SIECI TELEINFORMATYCZNYCH TABELE I FORMULARZE

JAVA W SUPER EXPRESOWEJ PIGUŁCE

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

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

Tablica zawierająca odniesienia do znajdujących się w dokumencie obiektów typu Anchor.

Okna, ramki i ciasteczka

prepared by: Programowanie WWW Servlety

Test przykładowy 2 PAI WSB Wrocław /06/2018

XML extensible Markup Language. część 5

Programowanie obiektowe

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

Cw.12 JAVAScript w dokumentach HTML

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

Wybrane działy Informatyki Stosowanej

Programowanie obiektowe

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

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

HTML (HyperText Markup Language) hipertekstowy język znaczników

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

1 Wprowadzenie do J2EE

Architektury Usług Internetowych. Laboratorium 1. Servlety

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

Atrybuty znaczników HTML

Tworzenie Stron Internetowych. odcinek 10


Wybrane działy Informatyki Stosowanej

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

Bezpieczeństwo frameworków WEBowych Java na przykładzie ataku CSRF

Celem ćwiczenia jest zapoznanie z językiem HTML i JavaScript, zasadami tworzenia stron WWW i umieszczania na nich skryptów w języku JavaScript.

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

Hyper Text Markup Language

JDBC (Java Database Connectivity vit )

Programowanie obiektowe zastosowanie języka Java SE

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

Zaawansowane aplikacje internetowe laboratorium

Technologie internetowe JavaScript

Umieszczanie kodu. kod skryptu

Wykład 2 Składnia języka C# (cz. 1)

Programowanie w języku Java

Scenariusz Web Design DHTML na 10 sesji. - Strony statyczne I dynamiczne. - Dodawanie kodu VBScript do strony HTML. Rysunek nie jest potrzebny

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

Czym jest AJAX. AJAX wprowadzenie. Obiekt XMLHttpRequest (XHR) Niezbędne narzędzia. Standardowy XHR. XHR z obsługą baz danych

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

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

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

XML extensible Markup Language. część 5

Programowanie obiektowe

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Programowanie w Sieci Internet filtry oraz web.xml. Kraków, 11 stycznia 2013 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Podstawy i języki programowania

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

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

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

Najprostszy dokument HTML. <html> <body> Dowolny tekst. </body> </html>

Metody dostępu do danych

Ćwiczenie: JavaScript Cookies (3x45 minut)

Programowanie internetowe

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Wprowadzenie do języka JavaScript

Tworzenie i wykorzystanie usług

Transkrypt:

Java PLAN WYKŁADU 1. Java2D AWT SWING Inicjalizacja Metody 2. JDBC Connector 3. Servlety Serwer internetowy Klasa HttpServlet 4. JSP 5. JavaScript 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 Container 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.

Java2D BufferedImage 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 1. 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 1. 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"

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

System.err.println("cos nie tak ze sterownikiem:\n"+e); 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) {

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();

Dynamiczna zawartość http RUN CGI PROGRAM http Klient 1. Zapytanie klienta. Serwer 2. Serwer uruchamia program i przekazuje dane protokołem CGI. 3. Serwer przekazuje odpowiedź z programu do przeglądarki.

Formularze <FORM> Definiuje formularz (</FORM> nie pomijany). Atrybuty: ID, LANG, DIR, CLASS, STYLE, TITLE, ACCEPT CHARSET, ACTION, ENCTYPE, METHOD, NAME(N),TARGET. Atrybuty zdarzenia: ONCLICK, ONDBLCLICK, ONKEYDOWN, ONKEYPRESS, ONKEYUP, ONMOUSEDOWN, ONMOUSEMOVE, ONMOUSEOUT, ONMOUSEOVER, ONMOUSEUP, ONSUBMIT, ONRESET.

Kodowanie ACTION adres URL aplikacji CGI <FORM ACTION= http://www.csr.pl/cgi-bin/update > ENCTYPE sposób kodowania danych 1. Kodowanie application/x www form urlencoded Nazwa=Firma+Komputerowa&adres=40-200+ Warszawa%0D%0A+UL.+MORSKA+12 Nazwa: Firma Komputerowa adres: 40-200 Warszawa UL. MORSKA 12

Kodowanie 2. Kodowanie multipart/form data ------------------------------12348905643ASX Content-Disposition: form-data; name= nazwa Firma Komputerowa ------------------------------12348905643ASX Content-Disposition: form-data; name= adres 40-200 Warszawa UL. MORSKA 12 ------------------------------12348905643ASX 3. Kodowanie text/plain nazwa=firma Komputerowa adres=40-200 Warszawa%0D%0A UL. MORSKA 12

Metody METHOD metoda przesyłania danych POST - dane w osobnej transmisji. GET - dane w wierszu poleceń. http://www.csr.pl/cgi-bin/update?nazwa=ksk KONTROLKI elementy formularza, pozwalające na wprowadzanie danych.

SERVLET Aplikacja wykonywana w środowisku Servera www http://if.us.edu.pl/~dawid 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(); }

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>");

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

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();

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>");

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 HTML w Kod wykonywany przez serwer www. ZNACZNIKI: <%-- Komentarz --%> dodaje komentarz Dodawanie bibliotek Dyrektywa page <%@ page import= java.util.* %> <%@ page import= java.sql.* %> Dyrektywa include <%@ include file= Klasa.jsp %> Dyrektywa taglib <%@ taglib uri= prefix= %>

JSP (Java server pages) Deklaracja metody <%! public void Pisz(){ System.out.println( Pisz tekst ); } %>

JSP (Java server pages) ZNACZNIKI: Wykonywanie kodu <H1> <% Pisz(); %> </H1> <table> <tr><td> <% Pisz(); %> </td></tr> <table>

JSP (Java server pages) Zmienne <%! String imie=new String(); %> <% imie=request.getparameter( imie ); %> <form action=nasz.jsp> <input type=text value=<%= imie %>> </form>

JSP (Java server pages) SESJE: <HTML> <BODY> <FORM METHOD=POST ACTION=ZapiszNazwe.jsp> Podaj nazwe? <INPUT TYPE=TEXT NAME=nazwa SIZE=10> <INPUT TYPE=SUBMIT> </FORM> </BODY> </HTML> <% String imie=request.getparameter( nazwa ); session.setattribute( snazwa,imie); %> <HTML> <BODY> <A HREF=NastepnaStrona.jsp>Dalej</A> </BODY> </HTML>

JSP (Java server pages) NastepnaStrona.jsp <HTML> <BODY> Hello, <%= session.getattribute( snazwa ); </BODY> </HTML>

JSP (Java server pages) Własne znaczniki JSP <%@ taglib uri= /taglib.tld prefix= nz %> <HTML> <BODY> <nz:witam/> </BODY> </HTML>

JSP (Java server pages) Taglib.tld <?xml version= 1.0 encoding= ISO=8859-1?> <taglib> <tlibversion>1.0</tlibversion> <jspversion>1.1 <jspversion> <tag> <name>witam</name> <tagclass>mytags.witam</tagclass> <body context>empty</body context> </tag> </taglib>

JSP (Java server pages) Witam.class Package mytags; Import javax.servlet.jsp.*; Import javax.servlet.jsp.tagtext.*; Public class Witam implements Tag { private PageContext pagecontext; private Tag parent; public int dostarttag() throws JSPException { return SKIP_BODY; } public int doendtag () throws JSPException { try{ pagecontext.getout().write( Witam ); } } catch(java.io.exception ex) { throw new JSPException( IO Exception ); } return EVAL_PAGE;

JSP (Java server pages) Witam.class public void release (){} public void setpagecontext(pagecontext p) { pagecontext=p; } public void setparent(tag t) { parent = t; } public void getparent() { return parent; } }

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(); }

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())

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");

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>

JavaScript Wprowadzony wraz z Netscape Navigator 2.0 w celu dodania interaktywności do statycznej strony HTML. Składnia języka skryptowego została oparta na składni Javy, która swoją składnię zawdzięcza C++. Cel Javascript to polepszenie obsługi strony www. Wprowadzenie skryptu do strony. <SCRIPT LANGUAGE = JavaScript > <! - document.write( Hello World ) --> </SCRIPT>

Zmienne JavaScript Liczba całkowita z przedrostkiem 0x20 hex. 32 dec Liczba zmiennopozycyjna. Ciąg znaków. (imie= Marceli lub imie= Tomasz ) Zmienne Boole owskie (PRAWDA, FAŁSZ TRUE, FALSE) JavaScript jest tak jak i Java językiem obiektowym. Obiekt=zmienne/stałe+metody powiązane ze sobą. Wyrażenia x=7; str= Hello World ;

Operatory. operatory jednoargumentowe (++. ). operatory dwuargumentowe. (+,,*,/). Operatory przypisania x=math.pi; document.write( x= +x); x=false; document.write( x= +x); x= Tekst ; document.write( x= +x); Możliwa jest zmiana typu zmiennej (on fly, czyli w locie). +=, -=, *=, /= przypisanie i działania matematyczne w tym samym czasie.

Operatory matematyczne +, dodawanie -, odejmowanie *, mnożenie /, dzielenie %, moduł --, zmniejszenie ++, przyrost Operatory porównania ==, równość!=, różność <, mniejszy od <=, mniejszy lub równy >, większy od >=, większy lub równy

Operatory logiczne &&, i (AND), lub (OR)!, nie (NO)!PRAWDA zwraca FAŁSZ i!fałsz zwraca PRAWDA Operatory łańcuchowe +, str= Hello + World! ; ==, case-insensitive.

Instrukcje sterujące pracą skryptu. Warunek if...else If(document.lastModified.year<1995) document.write( Bardzo stary dokument. ) If(document.lastModified.year>=1995)&& (document.lastmodified.month>=10) document.write( Nowy dokument. ) else document.write( Stary dokument. )

Iteracja for for(count=0;count<10;count++) document.write( Licznik:,count); Iteracja warunkowa while Wykonuje instrukcje tak długo jak jej warunek pozostaje prawdziwy. count=0; while(count<100){ document.write( Licznik:,count); count++; }

Instrukcja break (przerwanie) count=0; while(count<100){ if(count==10) break; count++; } Instrukcja continue var i=0; while(i<100){i++ if((i%2)==0) continue; else document.write( Licznik:,i); }

Instrukcja function. Function TytulStrony(strNazwa){ return(document.title == strnazwa) } Pętla for...in (iteracja właściwości obiektu) for (i in obj) document.writeln( dla +i+ obj= +obj[i]+ <br> );

Instrukcja new (definiuje nowy obiekt). urodziny = new Date(1978,9,17); tablica = new Array(10); Instrukcja return (określa wartość zwracaną przez funkcję) Function square(x){ return x*x; }

Instrukcja this. (dostęp do właściwości i metod obiektu) function setsize(x,y){ this.horizsize=x; this.vertsize=y; } document.setsize(640,480); Instrukcja var (podaje nazwę zmiennej). var number=0, liczba=6;

Instrukcja with. with document { write Nie potrzeba określać obiektu ; bgcolor = green; }

Model obiektu przeglądarki sieciowej. Hierarchia obiektów. window navigator document history location anchor link image form

WINDOW Określa bieżące okno przeglądarki Właściwości (dane). closed określa, czy okno zostało zamknięte. defaultstatus wadliwa informacja (linia statusu przeglądarki). length liczba ramek w bieżącym oknie. name nazwa okna. opener nazwa okna rodzica. parent okno z układem ramowym self lub top odnosi się do bieżącego okna. status wiersz stanu przeglądarki.

Metody (funkcje). alert(string) okienko dialogowe <OK>. blur() strata focus, dezaktywacja okna. cleartimeout(timerid) kasuje funkcję zegara. close() zamyka wyszczególnione okno. confirm(string) okno dialogowe <OK>,<CANCEL>. eval(string) traktuje string jako kod JavaScript. focus() uaktywnia okno. open() otwiera nowe okno. prompt(string,[inputdefault]) okienko podpowiadające. scroll(x,y) przesuwa okno do podanych współrzędnych. settimeout(expression,msec) podpięcie funkcji pod zegar.

Zdarzenia onblur uruchamianie gdy nastąpi dezaktywacja okna. onerror na błąd w oknie. onfocus na aktywację okna. onload na zakończenie ładowania strony. onunload na wyjście użytkownika z obrębu okna.

LOCATION Informacje o aktualnie wyświetlonym URL. Właściwości (dane). href zawiera cały URL. protocol razem z dwukropkiem (http:). host nazwa i numer portu www.us.edu.pl:80 hostname tylko nazwa www.us.edu.pl port nr. Portu 80. path scieżka do dokumentu. hash zawiera wszelkie argumenty CGI po znaku # search zawiera wszelkie argumenty CGI po znaku? Metody (funkcje). assign(string) ustawia location.href.

HISTORY Informacje o historii odwiedzanych stron. Właściwości (dane). current zawiera URL bieżącego wpisu historii. length zawiera liczbę wejść na listę historii. previous poprzedni wpis w historii. next następny wpis w historii. Metody (funkcje). Back() cofa się o jeden wpis na liście historii. Forward() przeskakuje o jeden wpis. Go(num) przeskakuje o num wpisów. go(string) skacze do wpisu, który zawiera słowo w zmiennej string

DOCUMENT Obiekt definiuje dokument. Właściwości (dane). alinkcolor kolor łącza aktywnego dokumentu. bgcolor kolor tła dokumentu. cookie cookie dokumentu. domain nazwa domeny serwera. fgcolor kolor pierwszego planu. lastmodified data ostatniej modyfikacji dokumentu. linkcolor kolor łączy dokumentu. referrer URL dokumentu, z którego przywołano dokument. title tytuł. URL pełny URL dokumentu. vlinkcolor kolor odwiedzonych łączy.

Metody (funkcje). close() zamyka dany dokument. eval(string) oblicza wyrażenie string jako kod JavaScript i zwraca wynik. open() otwiera strumień dla nowego dokumentu. write(expression,[expression...]) wypisuje wyrażenie HTML writeln (expression,[expression...]) dodaje nowe połączenie. Przykład

Tablice obiektowe JavaScript Odwoływanie się do większej liczby obiektów w danym oknie lub dokumencie. Przywoływanie obiektów JavaScript 1. Odwoływanie się do hierarchii obiektów. document.flame.src Przykład 2. Tablica obiektów z indeksem numerycznym. document.images[0].src Przykład 3. Tablica skojarzeniowa obiektów. document.images[ FLAME ].src Przykład

Tablice objektów JavaScript anchors dla znacznika <A> atrybut NAME. applets <APPLET> arguments jeden dla każdego argumentu funkcji JavaScript. elements jeden dla każdego elementu w formie HTML embeds <EMBED> forms jeden dla każdej formy HTML frames Jeden dla każdego znacznika <FRAME> history jeden dla każdego wpisu na liste historii. images jeden dla każdego znacznika <IMG> links jeden dla każdego znacznika zawierającego href mimetypes jeden dla każdego typu MIME,plug ins, ActiveX options <OPTIONS> plugins jeden dla każdego plug in na przeglądarce klienta

Obiekty LINK, AREA, ANCHOR Obiekt link korzysta z atrybutu href, a anchor name znacznika <A> Obiekt area powstaje dla każdego znacznika <AREA> Właściwości mają te same co obiekt location. Zdarzenia OnClick uruchamianie po kliknięciu. OnMouseOver uruchamianie przy najeżdżaniu na obiekt kursorem. OnMouseOut uruchamianie przy zjeżdżaniu z obiektu kursorem.

Obiekt IMAGE Tworzone za pomocą znacznika <IMG> Właściwości (dane). border wartość atrybutu BORDER. complete Wskazuje, czy obraz został całkowicie załadowany. height wysokość. hspace atrybut HSPACE. lowsrc atrybut LOWSRC. name atrybut NAME. src źródło danych obrazu. vspace atrybut VSPACE. width szerokość.

Zdarzenia OnAbort gdy użytkownik przerywa ładowanie obrazu. OnError gdy wystąpił błąd w trakcie ładowania obrazu. OnLoad uruchamianie po całkowitym załadowaniu obrazu. Przykład (zmiana obrazków)

Navigator Informacje na temat przeglądarki Właściwości (dane). appcodename nazwa kodowa przeglądarki. appname nazwa przeglądarki. appversion wersja przeglądarki. language w jakim języku. mimetypes tablica wszystkich typów MIME obsługiwanych. platform typ systemu dla którego została skompilowana. plugins info na temat zainstalowanych dodatków. useragent http protocol user agent: Mozilla/2.0 (Win32; I)

Metody javaenabled() test czy obsługa języka java jest załączona plugins.refresh() odświerza liste pluginów. preference() ustawia przeglądarke. savepreferences() nagrywa preferencje prefs.js. taintenabled() pytania przed wysłaniem danych.

Obiekty JavaScript Obiekt DATE Newdate=new Date (rok,miesiąc, dzień, godzina, minuta, sekunda); Metody getyear() Zwraca rok.. getmonth() Zwraca miesiąc. getdate() Zwraca dzień miesiąca. getday() Zwraca dzień tygodnia. gethours() Zwraca godzinę. getminutes() Zwraca minuty. getseconds() Zwraca sekundy.

gettime() liczba msec od 01.01.1970 00:00:00 gettimezoneoffset() Różnica czasu lokalnego do czasu GMT. setyear(arg) Ustawia rok. setmonth(arg) Ustawia miesiąc. setdate(arg) Ustawia dzień miesiąca. sethours(arg) Ustawia godziny. setminutes(arg) Ustawia minuty. setminutes(arg) Ustawia sekundy. settime(arg) liczba msec od 01.01.1970 00:00:00 togmtstring(arg) Reprezentacja łańcucha daty wg. GMT. tolocalstring(arg) Reprezentacja łańcucha daty wg. czasu lokalnego.

Obiekt MATH Udostępnia funkcje matematyczne Właściwości (dane). E stała e=2.73. LN2 logarytm naturalny z 2. LN10 z 10. LOG2E podaje podstawę z 2 logarytmu z e. LOG10E podaje podstawę z 10 logarytmu z e. PI liczba pi=3.14 SQRT1_2 pierwiastek kwadratowy z 1/2. SQRT2 pierwiastek kwadratowy z 2.

Metody abs(x) bezwzględna acos(x) arcus cosinus. asin(x) arcus sinus atan(x) arcus tangens x atan2(x,y) arcus tangens x/y ceil(x) zaokrąglenie w góre. cos(x) cosinus x. exp(x) exp(x) floor(x) zaokrąglenie w dół. log(x) logarytm z x. max(x,y) maximum z x i y min(x,y) minimum z x i y pow(x,y) x do potęgi y random() podaje liczbę losową round(x) do liczby całkowitej sin(x) sinus x sqrt(x) pierwiastek kwadratowy. tan(x) tangens.

event (JavaScript 1.2) Obiekt opisujący zdarzenia. Właściwości (dane). data zwraca tablicę URLi. height reprezentuje wysokość okna. layerx pozycja X kursora w obszarze layer. layery pozycja Y kursora w obszarze layer. modifiers ALT_MASK, CONTROL_MASK, SHIFT_MASK i META_MASK. pagex pozycja X w odniesieniu do strony pagey pozycja Y w odniesieniu do strony screenx pozycja X w odniesieniu do ekranu screeny pozycja Y w odniesieniu do ekranu target nazwa obiektu do którego odwołuje się zdarzenie. type typ zdarzenia. which numer naciśniętego guzika myszy.

width reprezentuje szerokość okna. x synonim dla layerx. y synonim dla layery. screen Obiekt opisujący ekran. Właściwości (dane). availheight wysokość dostępna dla przeglądarki. availleft dostępność z prawej strony. availtop dostępność z góry. availwidth szerokość dostępna dla przeglądarki.. colordepth głębokość bitowa kolorów.

height wysokość ekranu. pixeldepth bity na pixel. width szerokość ekranu. string Obiekt opisujący działania na łańcuchach. s1 = JavaScript" // tworzy zmienną typu tekstowego s2 = new String( JavaScript") // tworzy obiekt string s1 = "2 + 2" // s2 = new String("2 + 2") eval(s1) // zwraca 4 eval(s2) // zwraca "2 + 2"

Właściwości (dane). constructor zmiana konstruktora obiektu. length zwraca długość łańcucha. prototype dodawanie metod do objektów. var s1 = new String("a") var s2 = new String("b") var s3 = new String("c") function str_rep(n) { var s = "", t = this.tostring() while (--n >= 0) s += t return s } String.prototype.rep = str_rep s1a=s1.rep(3) // returns "aaa" s2a=s2.rep(5) // returns "bbbbb" s3a=s3.rep(2) // returns "cc"

Metody anchor() tworzy znacznik HTML anchor <a name= > big() jak znacznik <BIG>. blink() jak znacznik <BLINK>. bold() jak znacznik <B>. charat() zwraca znak dla określonego indeksu. charcodeat() zwraca kod numeryczny dla określonego indeksu. concat() łączy obiekty string. fixed() czcionka monotypiczna <TT>. fontcolor() kolor czcionki. fontsize() rozmiar czcionki. fromcharcode() łańcuch z kodów numerycznych indexof() zwraca index dla wartości znakowej. italics() <I>. link() tworzy link match() porównanie ciągów. replace() odszukanie i zamiana.

search() odszukiwanie. slice() wyciąga kawałek tekstu z ciągu. small() jak <SMALL>. split() dzieli ciąg znakowy. strike() jak <STRIKE>. sub() jak <SUB> substr() zwraca ciąg z podanego indeksu z ilością znaków. substring() zwraca ciąg pomiędzy dwoma indeksami. sup() jak <SUP> tolowercase() konwersja do małych znaków. tosource() tworzy źródło. tostring() zwraca ciąg reprezentujący dany objekt. touppercase() konwersja do dużych znaków. valueof() zwraca wartość obiektu

Form Właściwości (dane). Formularze a JavaScript Obiekt opisujący znacznik HTML <FORM>. name wartość atrybutu NAME obiektu form. method wartość atrybutu METHOD. action wartość atrybutu ACTION. elements Tablica elementów obiektu form. length liczba elementów obiektu form. encoding wartość atrybutu ENCODING target okno docelowe po wysłaniu odpowiedzi.

Metody reset() przywraca wartości początkowe formy. submit() przekazuje formę. handleevent() przekazuje uchwyt dla zdarzenia (event). Zdarzenia onreset Po kliknięciu reset lub po wywołaniu metody reset. onsubmit Po kliknięciu submit lub po wywołaniu metody submit.

Użycie obiektów do manipulowania elementami form Dotyczy wszelkich obiektów związanych ze znacznikiem <INPUT> Właściwości (dane). name wartość atrybutu NAME elementu. value zawartość pola. type typ kontrolki. form określa formularz zawierający kontrolkę. defaultvalue początkowa wartość pola. Metody Focus() uaktywnienie danego obiektu. Blur() dezaktywowanie danego obiektu. Select() wybiera dany obiekt. Submit() przekazuje formę zgodnie z atrybutami ACTION i METHOD.

Zdarzenia onfocus klawisz tab lub kliknięcie myszą. onblur uruchamianie gdy użytkownik deaktywuje okno. onselect uruchamianie, gdy zmiana tekstu w oknie. onsubmit uruchamianie po przekazaniu formy. onchange uruchamianie po zmianie tekstu. Właściwości oraz zdarzenia obiektów radio oraz checkbox Właściwości (dane). name wartość atrybutu NAME elementu. value zawartość pola. type typ kontrolki. form określa formularz zawierający kontrolkę. checked stan pola wyboru. defaultchecked początkowy stan pola wyboru.

Metody focus() uaktywnienie danego obiektu. blur() dezaktywowanie danego obiektu. click() klika przycisk i uruchamia dla niego czynność. submit() przekazuje formę zgodnie z atrybutami ACTION i METHOD. Zdarzenia onfocus klawisz tab lub kliknięcie myszą. onblur uruchamianie gdy użytkownik deaktywuje okno. onclick uruchamianie, po naciśnięciu przycisku. onsubmit uruchamianie po przekazaniu formy. onchange uruchamianie po zmianie tekstu.

Właściwości oraz zdarzenia obiektów select Właściwości (dane). name wartość atrybutu NAME elementu. length wartość atrybutu NAME elementu. type typ kontrolki. form określa formularz zawierający kontrolkę. selectedindex wybrany indeks z pola wyboru. options odpowiada znacznikowi OPTION.

Metody focus() uaktywnienie danego obiektu. blur() dezaktywowanie danego obiektu. handleevent() wywołuje uchwyt tego specyficznego zdarzenia. Zdarzenia onfocus klawisz tab lub kliknięcie myszą. onblur uruchamianie gdy użytkownik deaktywuje okno. onclick uruchamianie, po naciśnięciu przycisku. onchange uruchamianie po zmianie tekstu.

Właściwości oraz zdarzenia obiektów options Właściwości (dane). length ilość elementów options. text tekst w znaczniku OPTION. value wartość zwracana do serwera po wybraniu opcji. index indeks określający numer wyboru. selected definiuje stan opcji. defaultselected określa początkowy stan opcji.

Przykłady JavaScript Zmiana wielkości liter Objekty select i option Przechwytywanie zdarzeń