15. Internet, WorldWideWeb, HTML & Java

Relevanta dokument
Javadoc. Internet, WorldWideWeb, HTML, och Java. Webbläsarkomponenten. JEditorPane p. HyperlinkListener. Javadoc exempel:

Support Manual HoistLocatel Electronic Locks

Datasäkerhet och integritet

Att skriva till och läsa från terminalfönstret

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

Beijer Electronics AB 2000, MA00336A,

Isolda Purchase - EDI

Fakulteten för ekonomi, kommunikation och IT. Corba. Datum: Mathias Andersson

Michael Q. Jones & Matt B. Pedersen University of Nevada Las Vegas

Problem som kan uppkomma vid registrering av ansökan

Tentamensskrivning Nätverksprogrammering (EDA095) , kl 8-13

Recitation 4. 2-D arrays. Exceptions

Installation av F13 Bråvalla

Lösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document

LARS. Ett e-bokningssystem för skoldatorer.

Information technology Open Document Format for Office Applications (OpenDocument) v1.0 (ISO/IEC 26300:2006, IDT) SWEDISH STANDARDS INSTITUTE

Upplägg. Introduktion. Examination. Mål. Konsekvenser. Java. Kursen heter konstruktion, ej design eller formgivning.

Vässa kraven och förbättra samarbetet med hjälp av Behaviour Driven Development Anna Fallqvist Eriksson

Make a speech. How to make the perfect speech. söndag 6 oktober 13

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

Vad kännetecknar en god klass. Vad kännetecknar en god klass. F12 Nested & Inner Classes

Quick Start Guide Snabbguide

2.1 Installation of driver using Internet Installation of driver from disk... 3

JAR som tar eller zip. Java. Exekvering

Surfning. Webbklienter och webbservrar. Specialskrivna webbservrar. Kommunikation med sockets

Tentamensskrivning Nätverksprogrammering (EDA095 - FED) , kl 8-13

FÖRBERED UNDERLAG FÖR BEDÖMNING SÅ HÄR

Preschool Kindergarten

Denna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se

Fördjupad Java. Undantagshantering. Fel


Webbregistrering pa kurs och termin

1. Unpack content of zip-file to temporary folder and double click Setup

Distribuerade system. CORBA eller RMI

Objektorienterad Programkonstruktion. Föreläsning 2 2 nov 2016

Alternativet är iwindows registret som ni hittar under regedit och Windows XP 32 bit.

Annonsformat desktop. Startsida / områdesstartsidor. Artikel/nyhets-sidor. 1. Toppbanner, format 1050x180 pxl. Format 1060x180 px + 250x240 pxl.

Tentamen Nätverksprogrammering Lösningsförslag

12.6 Heat equation, Wave equation

l uppgiftsformulering l algoritmkonstruktion l verifikation l kodning l testning och avlusning l validering l dokumentering l underhœll Kapitel 2

Undantagshantering. Fördjupad Java. Fel. Undantag. Fånga Undantag. Grupper av Undantag

Webbreg öppen: 26/ /

Undantagshantering. Fördjupad Java. Undantag. Fel. Grupper av Undantag. Fånga Undantag

endast har ett korrekt alternativ. Om

Styrteknik: Binära tal, talsystem och koder D3:1

SI-pass 4. Johan Brook och Jesper Persson. 25 september Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner.

Translation Changes in Swedish EBSCOhost Interface

SVENSK STANDARD SS :2010

Windlass Control Panel v1.0.1

Sparbankerna PDF. ==>Download: Sparbankerna PDF ebook By 0

Reguljära uttryck. Reguljära uttryck. Nu kommer en siffra78 och en till SIFFRA(78) men utan 7kstuga SIFFRA(89)

Integritetspolicy på svenska Integrity policy in English... 5

A metadata registry for Japanese construction field

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

Authentication Context QC Statement. Stefan Santesson, 3xA Security AB

Alias 1.0 Rollbaserad inloggning

Omentamen FYTA11 Javaprogrammering

Språkkonventioner och redigering av tal.

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

VHDL Basics. Component model Code model Entity Architecture Identifiers and objects Operations for relations. Bengt Oelmann -- copyright

Modelsvar för Tentamen för Objektorienterad programvaruutveckling, TDA545

Support for Artist Residencies

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p)

Bas - Utvecklingsstöd

Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering

Module 6: Integrals and applications

Writing with context. Att skriva med sammanhang

Workplan Food. Spring term 2016 Year 7. Name:

WhatsApp finns för dessa plattformar:

Översättning av galleriet. Hjälp till den som vill...

SweLL & legal aspects. Elena Volodina

Swedish National Data Service

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 5

SVENSK STANDARD SS-EN ISO 19108:2005/AC:2015

DVG C01 TENTAMEN I PROGRAMSPRÅK PROGRAMMING LANGUAGES EXAMINATION :15-13: 15

Isometries of the plane

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU

FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl

Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine.

Objektorienterad Programmering (TDDC77)

Quick-guide to Min ansökan

Användarhandbok. MHL to HDMI Adapter IM750

Innehåll. 5. More sophisticated behavior. Javas klassbibliotek. Arbete med klassbibliotek. A Technical Support System. Huvudloopens struktur

Stad + Data = Makt. Kart/GIS-dag SamGIS Skåne 6 december 2017

Kvalitetsarbete I Landstinget i Kalmar län. 24 oktober 2007 Eva Arvidsson

Lehigh Valley Hospital Schuylkill Portal User Q&A

Föreläsning 4. ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista

Lösningsförslag till tentamen

Övning vecka 6. public void method2() { //code block C method3(); //code block D }//method2

Nya möjligheter med M3 Technology. Björn Svensson, Björn Torold

Designmönster/Design patterns

Lösningsförslag. Programmeringsmetodik, KV: Java och OOP. 17 januari 2004

Rastercell. Digital Rastrering. AM & FM Raster. Rastercell. AM & FM Raster. Sasan Gooran (VT 2007) Rastrering. Rastercell. Konventionellt, AM

Styrteknik : Funktioner och funktionsblock

Transkript:

15. Internet, WorldWideWeb, HTML & Java

15.1 Topics JavaDoc : Automatic generation of documentation in HTML JEditorPane web browser component HTML can be interpreted by Swing components Applets Support for network communication by TCP/IP and UDP/IP

15.2 Javadoc 3 types of comments Tags // Comment @author (classes + interfaces) @version (classes + interfaces) /* @param (methods + constructors) Comment @return (methods) */ @exception (@throws synonym) @see /** @since Comment @serial (@serialfield, @serialdata) */ @deprecated

15.3 Javadoc Example /** * <p> Initial HTML comments, </p> * <p> author, copyright, etc </p> */ public class Math{ /** Method square returns square of an integer @param x an integer @return an integer which is the input squared */ public int square(int x){ return x * x ; } }

*This method always returns immediately, whether or not the * image exists. When this applet attempts to draw the image o *the screen, the data will be loaded. The graphics primitives *that draw the image will incrementally paint on the screen. *@param url an absolute URL giving the base location of the *image *@param name the location of the image, relative to the url *argument *@return the image at the specified URL * *@see Image */ public Image getimage(url url, String name) {

etimage ublic Image getimage(url url, String name) Returns an Image object that can then be painted on the screen. The url argument must specify an absolute URL. The name argument is a specifier that is relative to the url argument. This method always returns immediately, whether or not the image exists. When this applet attempts to draw the image on the screen, the data will be loaded. The graphics primitives that draw the image will incrementally paint on the screen. Parameters: url - an absolute URL giving the base location of the image name - the location of the image, relative to the url argument Returns: the image at the specified URL See Also: Image

15.4 JEditorPane Display www-pages p.setpage(http://www.nada.kth.se/~karlm); To click on links p.seteditable(false); p.addhyperlinklistener(<hyperlinklisterner>); Three kinds of hyperlink events mouse onto a link, mouseclick, mouse off a link

15.5 HyperlinkListener public class WWW implements HyperlinkListener { public void hyperlinkupdate(hyperlinkevent e) { if(e.geteventtype()== HyperlinkEvent.EventType.ENTERED) { setcursor(cursor. getpredefinedcursor(cursor.hand_cursor)); } else if(e.geteventtype()== HyperlinkEvent.EventType.EXITED) { setcursor(cursor.getdefaultcursor()); } else showpage(e.getdescription()); // showpage is a web-browser } }

15.6 Reading a Web Page Connecting to a web page InputStream in=new URL(webpage).openConnection().getInputStream( ); InputStreamReader reader= new InputStreamReader(in); Reading HTML code symbol by symbol while(reader.ready()) System.out.printl((char)reader.read());

Reading a Web Page (Cont.) Better to use Java s built-in support for managing HTML-pages! Use package javax.swing.text.html

15.7 Swing and HTML Suppose we read in a www page into HTMLDocument doc: new HTMLEditorKit().read(reader,doc,0); Now we want to traverse document through all start tags of a particular type. First step is to make an iterator: HTMLDocument.Iterator it=doc.getiterator(html.tag.b);

Swing and HTML (Cont.) We have created an iterator for the start tag <B> (boldface) which has 5 methods it.next() one step forwards it.isvalid() false at end of file it.getstartoffset() where text between tags starts it.getendoffset() where text between tags ends it.getattributes() tag attribute list

Swing and HTML (Cont.) Certain tags can have attributes, for example <BODY BGCOLOR=YELLOW> And the value which attribute BGCOLOR has can be obtained by it.getattributes(). getattribute(html.attribute.bgcolor)

Swing and HTML (Cont.) If we know where the text between tags starts and ends we can obtain the text by doc.gettext(start, end - start);

16. Computing Legislature PUL Personuppgiftslagen www.datainspektionen.se/lagar/pul.shtml Applies to all forms of information bearing media Databases E-mail Text Web pages

16.1 PUL All befattning med personuppgifter kräver enligt PUL samtycke om den inte görs I journalistisk eller konstnärlig verksamhet eller rent privat. För att det ska räknas som privat ska uppgifterna bara vara åtkomliga för en själv och familjen, som fotoalbum, telefonbok och dagbok

PUL (Forts.) Den som lägger upp sökbara personuppgifter måste anmäla detta till Datainspektionen eller till företagets eget personuppgiftsombud. Varje person har rätt att en gång om året på begäran få upplysning om allt som står om henne i företagets eller myndighetens register.

16.2 Upphovsrätten För att möjliggöra konstnärligt skapande har upphovsrättslagen tillkommit Ger ekonomisk ersättning och ensamret att bestämma över sina verk. Upphovsrätten uppstår automatiskt I och med verkets skapande

Upphovsrätten (Forts.) Man markerar ofta upphovsmannensskydd genom användande av symbolen copyright, men detta har enligt svensk lag ingen formell betydelse för att upphovsrätt ska gälla.

16.3 Upphovsrättens omfattning Skönlitterär eller beskrivande framställning I skrift Datorprogram Musikaliskt eller sceniskt verk Filmverk Fotografiskt verk eller något annat alster av bildkonsten Alster av byggnadskonst eller brukskonst, eller verk som har kommit till uttryck på något annat sätt.

16.4 Förfoganderätt och ideell rätt Ekonomiska rätten förfoganderätten Framställa exemplar av verket Visa det offentligt Sprida det till allmänheten Framföra verket offentligt Ideella rätten Upphovsmannen skall namnges vid utnyttanden av verket Verket inte får ändras på ett för upphovsmannen kränkande vis

Upphovsrätten (Forts.) Skyddstiden är 70 år Upphovsrätten till något kan ärvas Det är tillåtet att ta esntaka kopior av ett verk för enskilt bruk Ett undantag från denna regel är kopior av datorprogram 1720 i England kom den första upphovsrättslagen för att skydda boktryckarna

17. Advanced Java Component: code that can be used without any changes (Braude) Need to be able to add things to legacy code Programs must collaborate In O-O terminology these are inheritance and interfaces In Java: extends and implements

17.1 Self-descriptive Objects More or less standard for hardware, e.g. USB For data it s worse, many standards XML is an attempt at a standard way to store information Trend is for more self description

17.2 Interface Serializable Allows one to save entire objects to file or send them to another computer A class can implement writeobject() and readobject() if better efficiency is needed

class Car implements Serializable { String color; public void setcolor(string str) { color = str; } Public void print() { System.out.println( Color = +color); } } }

Import java.io.*; Public class Ser { Public static void main(string[ ] args) { Ser s=new Ser(); s.create(); s.retrieve(); }

Public void create() { Car c=newcar(); c.setcolor( Red ); try { FileOutputStream fos=new FileOutputStream( car_a.tmp ); ObjectOutputStream oos=new ObjectOutputStream(fos); oos.writeobject( c ); oos.close(); System.out.println( Stored one car-object to file ); } catch (IOException e) { System.err.println( Failed to write object to disk ); } }

Public void retrieve() { Car c=null; try{ } FileInputStream fis=new FileInputStream( car_a.tmp ); ObjectInputStream ois=new ObjectInputStream(fis); c=(car)ois.readobject(); ois.close(); System.out.println( Retrieved one carobject from file );

Catch(IOException e) } } { System.err.println( Failed to read object from disk ); } } catch(classnotfoundexception e) } {System.err.println( Failed to locate object in inputstream ); if (b!=null) { b.print(); } }

17.3 JAR-archive (Java ARchive) Many class files can be compressed in a jar file ->>jar cmf MANIFEST:MF Stan *.class Program can then be executed via jar file ->>Java jar Stan Applet <applet coderes.class archive= Stan.jar width=120 height=120> >/applet> Jar file contains a manifest -Main-Class: Ser

17.4 Why JAR archives? Safety contents can be signed. Users who trust you can give your program greater access to hardware. -jarsigner jar-file alias Faster downloads Version management Portability.

17.5 Socket Communication Two or more Java programs can cooperate via TCP/IP communication Java programs can run on different machines A computation can be divided among several processors, or assigned to the machine with the right facilities. E.g. a neural network with 1 million neurones and 1 billion connections has been executed as 64 coupled Java programs.

17.6 RMI Remote Method Invocation A transparent way to call methods from other machines Important aspect is security, which is usually better then if one had implemented communication directly with sockets Efficient, whole objects need not be sent.

RMI (Cont.) Client-server Server has object which contains calleable methods Client downloads a stub file for each server object (compiled with rmic) Stub file is a proxy for the server object. Clients calls to server go via stub-object.

RMI (Cont.) Client Write classes which import Java.rmi.*; and contain network address to RMI-server Start client program Server Write classes which import java.rmi.*; and implement interface Remote Compile program and generate stubs Make files available on network Start RMI-server with rmiregistry which listens to calls from clients on port 1099

17.7 CORBA Common Object Request Broker Architecture CORBA makes it possible for programs on different machines in different languages to cooperate Components are independent of their development platform through CORBA Client-server architecture Client object calls server object via a stubb Stub translates call to a metalanguage

CORBA (Cont.) Call from server to client goes via an ORB (Object Request Broker) ORBs can communicate using IIOP (Internet Inter-ORB Protocol) An ORB looks up the right server object and lets the stub make a call in the right language Return data go back the same path Stub on the server side is called a skeleton.

CORBA Stubs Available methods on a server object are described using IDL (Interface Definition Language) IDL compiler creates stubs from an IDL file Java (version 1.3 or later) ->>idlj fall psyk.idl

Module psyk { Psyke.idl Interface PsykClient { Void msg(in string name, in string s); String getname(); } Interface PsykMonitor { Void addclient(in string name); Void removeclient(in string name); } Interface PsykServer { Boolean connect(in PsykClient cl); Boolean disconnect(in PsykClient cl); Boolean say(in string name, in string msg); }

17.8 CORBA Lab Ex. Strangely the client class shouldn t say implements PsykClient. So that the portable object adapter will accept CORBA stubs we need Class Client extends PsykClientPOA {

17.9. CORBA Lab Because client object is not of type PsykClient and therefore can t be used as a parameter to servers connect method (which needs a PsykClient) there is a method _this(orb) which returns a PsykClient. Client._this(orb); Same is true for PsykMonitor