120 likes | 246 Views
Web-applikationer. Arkitektur Applets JSP/Servlets. Web-applikationer - 1. Brugere interagerer med en Web-browser Browsers sender forespørgsler til en Web-server Web-serveren sender et svar som et html-dokument
E N D
Web-applikationer Arkitektur Applets JSP/Servlets IntroJava2006 AAU
Web-applikationer - 1 • Brugere interagerer med en Web-browser • Browsers sender forespørgsler til en Web-server • Web-serveren sender et svar som et html-dokument • Web-serveren kan kommunikere med andre applikationer under udarbejdelse af svaret • Browseren fortolker html-dokumentet Web-browser Klient HTML internet Web-server Server Firewall Applikationer/ Databaser mv. IntroJava2006 AAU
Web-applikationer - 2 • En browser er et program, som henter html-dokumenter fra en server, fortolker html og viser resultatet • En web-server er et program, som lytter efter forespørgsler på html-dokumenter og sender det ønskede html-dokument retur • Html-dokumentet kan være dynamisk, dvs. opbygges af programmer på web-serveren, fx ud fra resultater fra andre applikationer og/eller databaseforespørgsler Web-browser Klient HTML internet Web-server Server Firewall Applikationer/ Databaser mv. IntroJava2006 AAU
Web-applikationer - 3 • Som udgangspunkt eksekveres (næsten) al kode på serveren • Kun præsentation på klienten • Ofte er det ønskeligt at få mere funktionalitet på klienten • Applets er en teknologi, som tillader Java-programmer (med visse begrænsninger) at eksekvere i browseren • En applet er en .class-fil, som hentes over sammen med html-dokumentet og eksekverer i browseren Web-browser Klient HTML (evt. med applet) internet Web-server Server Applikationer/ Databaser mv. Firewall IntroJava2006 AAU
Applet import javax.swing.JApplet; import java.awt.Graphics; public class HelloWorldApplet extends JApplet { public void paint(Graphics g) { super.paint(g); g.drawString("Hello world!", 50, 150); } } <html> <applet code=HelloWorldApplet.class width="200" height="200"> </applet> </html> IntroJava2006 AAU
Applets kører i browseren: <html> <applet code=HelloWorldApplet.class width="200" height="200"> </applet> </html> IntroJava2006 AAU
Applets kan også laves I Net Beans http://www.netbeans.org/kb/50/tutorial-applets.html IntroJava2006 AAU
Problemer med applets • Afhænger af klientens browser • Afhænger af klientens java-version • Kan ikke kommunikerer med klientens filsystem • Ved ‘call-back’ til serveren er firewals ofte et problem • Bruges mest i forbindelse med grafik, fx:http://cg.scs.carleton.ca/~morin/misc/sortalg/eller spil • Også visse homebanking systemer anvender applets til opsætning af sikker kommunikation IntroJava2006 AAU
Servlets Web-browser Klient • Servlets er Java-programmer, som bor og eksekverer på en web-server • Servlets kan svare på forespørgsler fra en browser • Servlets indeholder Java-kode: • Herved kan præsentation og forretningslogik blandes • Servlets bør bruges som grænseflade mellem web-serveren og applikationer • Herved adskilles præsentation (generering af html) fra forretningslogik (Java-kode) • JSP er en udvidelse, som gør det muligt at bruge grafiske værktøjer til web-design og få servlets genereret automatisk (af web-serveren) HTML internet Web-server Java Server Pages Server Servlet Container Servlet Firewall Applikationsserver Java-programmer Database IntroJava2006 AAU
En servlet: Vi skal bruge en masse import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; public class WelcomeServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException{ response.setContentType( "text/html" ); PrintWriter out = response.getWriter(); out.println( "<?xml version = \"1.0\"?>" ); out.printf( "%s%s%s", "<!DOCTYPE html PUBLIC", " \"-//W3C//DTD XHTML 1.0 Strict//EN\"", " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n" ); out.println( "<html xmlns = \"http://www.w3.org/1999/xhtml\">" ); //--- Vi arver en masse Information til browseren IntroJava2006 AAU
Vi vil ikke skrive sådan noget selv!!! out.println( "<head>" ); out.println( "<title>A Simple Servlet Example</title>" ); out.println( "</head>" ); // body section of document out.println( "<body>" ); out.println( "<h1>Welcome to Servlets!</h1>" ); out.println( "</body>" ); // end XHTML document out.println( "</html>" ); out.close(); // close stream to complete the page } // end method doGet } // end class WelcomeServlet ‘Almindelig’ html IntroJava2006 AAU
Servlets • For at køre servlets skal man have installeret en web-server: Apache Tomcat Server • Om servlets kan man lære på: http://java.sun.com/products/servlet/index.jsp • Om Java Server Pages på: http://java.sun.com/products/jsp/ • NetBeans 5.5 kan håndtere meget af det: http://www.netbeans.org/products/ide/ IntroJava2006 AAU