Applets, Java Plug-In och Java Web Start
Egentligen bör ingen av nedanstående teknologier användas
på en websida som riktar sig till "vem som helst i hela världen
som råkar surfa förbi" eftersom de inte säkert går
att exekvera utan att ytterligare programvara installeras (Explorer i Windows
XP klarar inte alltid av applets). Om någon senare version av Java
än JDK 1.1 används i appleten finns det ingen browser alls som
kan exekvera den utan kompletterande installationer.
Applets
En applet ska ärva av klassen java.applet.Applet om den skrivs
i AWT och javax.swing.JApplet om den skrivs i Swing. Dessa klasser
ärver av java.awt.Panel och innehåller alltså all dess
funktionalitet. I appleten kan/ska du omdefinera nedanstående metoder.
- public void init() Anropas endast när appleten
laddas in i webläsaren, dvs en gång per applet.
- public void start() Anropas när websidan med appleten
ska börja visas, dvs när användaren surfat till den
eller när programmet varit ikoniserat och börjar visas igen.
- public void stop() Anropas när websidan med appleten
slutar visas, dvs när användaren surfar från den eller
ikoniserar webläsaren.
- public void destroy() Anropas när appleten laddas
ur, till exempel om användaren stänger webläsaren.
En applet visas i en webbläsare med hjälp av taggen <applet>.
Här är en enkel liten applet och en HTML-fil som startar
den, AppletDemo.java,
appletdemo.html. Appleten skriver ut när
ovanstående fyra metoder anropas. Dessutom illustrerar
den att ett GUI skapas på precis samma sätt som i en applikation.
Förutom vad som sagts ovan fungerar ett användargränssnitt
i en applet på exakt samma sätt som i en applikation som visas
i en Frame/JFrame.
Java Web Start
Java Web Start ingår i J2SE och fungerar mycket kortfattat på
följande sätt (notera att Java Web Start måste vara installerad
på alla klienter). Websidan ska innehålla en länk till en
XML-fil som beskriver Javaprogrammet. När användaren klickar på
länken kommer Java Web Start automatiskt att ladda hem alla nödvändiga
filer (om det inte var gjort tidigare), spara dem lokalt och starta programmet
som en vanlig applikation. Nästa gång användaren klickar
på länken kommer programmet att starta utan att filerna behöver
laddas hem. Användaren kan också lägga upp det hemladdade
programmet som en ikon och starta det utan att gå via browsern. Om
programmet uppdateras på servern kommer den nya versionen att laddas
hem när användaren startar det.
Den stora fördelen med den här tekniken jämfört med
Java Plug-in (se nedan) är att programmet sparas lokalt som en vanlig
applikation och kan köras utan någon browser. Det blir alltså
snabbare och även oberoende av om det finns Java-stöd i browsern.
Nackdelen är att Java Web Start måste installeras "manuellt".
Java Web Start kan ses som ett enkelt sätt att installera (och uppdatera)
program över webben. Bara användaren klickar på en länk
i sin browser installeras programmet. Det fungerar oberoende av webserver,
browser eller operativsystem (bara Java Web Start finns installerat).
För att distribuera ett program med Java Web Start räcker det
att göra så här:
- Lägg till stöd för en ny MIME-typ i webservern.
- Skriv en JNLP-fil. Detta är en xml-fil som beskriver programmet.
- Paketera programmet i en jar.
- Gör en länk (i någon websida) till JNLP-filen.
En utförligare beskrivning av detta finns här, http://java.sun.com/products/javawebstart/docs/developersguide.html#website.
Det går även lätt att ge programmet utökade rättigheter
på användarens dator, till exempel att öppna filer eller
kommunicera över nätet. Användaren måste naturligtvis
godkänna de utökade rättigheterna först.
Mer information om Java Web Start finns här, http://java.sun.com/j2se/1.4/docs/guide/jws/index.html.
Java Web Start ingår i J2SE.
Java Plug-in
En förteckning över SUN:s dokumentation om Java Plug-in finns
på http://java.sun.com/j2se/1.4/docs/guide/plugin/index.html.
Java Plug-in är en javamotor som läggs till din webläsare
precis som vilken annan plugin som helst. För att det ska fungera
måste applettagarna skrivas om. Det finns ett verktyg som gör
det automatiskt, det finns här: http://java.sun.com/j2se/1.4/docs/guide/plugin/developer_guide/html_converter_more.html.
När appleten ska laddas kommer webläsaren (fungerar med netscape
och explorer) att kolla om Java Plug-in är installerad. Om så
inte är fallet kommer den att laddas hem så att du kan installera
den i din dator. OBS! Att du nu installerat den betyder inte att du kan använda
den normala applettagen, du måste även fortsättningsvis använda
den utökade applettagen
Java Plug-in ingår i J2SE.
En jämförelse av Java Web Start och Java Plug-in
Ingen av dessa teknologier är lämplig att använda på
en websida som riktar sig till "vem som helst i hela världen som råkar
surfa förbi" eftersom de båda kräver installation av en programvara
på åtskilliga megabyte. De bör endast användas för
användare som på något sätt är knutna till sajten
och på vilka det är rimligt att ställa krav på att
installera lämplig programvara för att kunna använda den.
Ur säkerhetssynpunkt är det inget problem med någon av
dem.
Ingen av dem har speciellt krånglig installation, det enklaste är
att be användarna installera J2SE så får de både Java
Web Start och Java Plug-in automatiskt.
Java Web Start är bättre därför att:
- Det finns inget behov av Javastöd i browsern eftersom Java Web
Start är en helt fristående applikation. Det blir alltså
inget strul med olika browserversioner som ska ha olika konstiga html-taggar.
- Den kan installera programmet lokalt på användarens dator
så att det kan köras utan browser.
- Det är lättare att förstå vad som händer
och därmed lättare att använda för både användare
och programmerare (min personliga åsikt).
- Det är inte nödvändigt att använda applets, det
går att köra en helt vanlig applikation.
- Lättare att debugga eftersom programmet kan utvecklas som en
applikation.
Java Plug-in är bättre därför att:
- Den kan interagera med browsern, till exempel genom att kommunicera
med javascript på websidan.