Presentation laddar. Vänta.

Presentation laddar. Vänta.

1 ITK:P2 F9 HTTP, Java servlets och Apache Tomcat DSV Peter Mozelius.

Liknande presentationer


En presentation över ämnet: "1 ITK:P2 F9 HTTP, Java servlets och Apache Tomcat DSV Peter Mozelius."— Presentationens avskrift:

1 1 ITK:P2 F9 HTTP, Java servlets och Apache Tomcat DSV Peter Mozelius

2 2 Klienter och servrar

3 3 HTTP  HTTP (HyperText Transfer Protocol) är ett protokoll som framför allt talas mellan webbläsare och webbservrar  HTTP-protokollet började användas 1990 som en ersättare till det äldre Gopher  Första versionen var HTTP/0.9  HTTP/0.9 har ett enda kommando: GET  Senare versioner är 1.0 och 1.1 (1996)

4 4 URL  Uniform Resource Locator  URL-syntaxen finns specificerad för en rad olika protokoll i RFC 1738  Vi tittar här på hur den ser ut för HTTP som är protokollet för hemsidor/webben (+ eventuell följande ?query_string)

5 5 URL  Vi tittar på den URL som leder fram till en hemsida med lite material till denna kurs:  protocol/protokoll är  host/värddator är  port är defaultport :80  path/sökväg är ~mozelius/ITKP2 /  filename/filnamn blir index.html

6 6 HTTP kommandon GET POST HEAD TRACE PUT DELETE

7 7 GET och POST  I 99% så handlar det om GET och POST  GET  tänkt för att hämta saker från servern  skickar data med URL + frågesträng  vissa servrar klipper av frågesträngen efter x antal tecken  POST  skickar data till servern utan att klienten ser  passar bättre för stora mängder data  säkrare än GET

8 8 Java servlets  Som applets fast på serversidan  Skrivs i språket Java precis som applets och vanliga applikationer import javax.servlet.*; Grundläggande servletklasser import javax.servlet.http.*; Klasser som hanterar HTTP kommandon

9 9 Java servlets  Ett effektivt alternativ till CGI-lösningar  CGI startar en ny process för varje anrop  Servlets startar bara en ny tråd  CGI avslutar processen efter anropet  Servlets ligger kvar i minnet

10 10 Klient-server med servlets

11 11

12 12 Servlets och HTTP  Metoder för HTTP i en servlet  doGet()  doPost()  doHead()  doTrace()  doPut()  doDelete()

13 13 doGet() och doPost() När du behöver bägge metoderna i en servlet så kan de med fördel kombineras enligt:  public void doGet(HttpServletRequest request, HttpServletResponse response) {  Här finns koden som gör jobbet; }}  public void doPost(HttpServletRequest request, HttpServletResponse response) {  doGet(request, response); }}

14 14 HttpServletRequest  Ett sätt att få tag i viktig information  HTTP Request = klientens förfrågan Request Header  Läs innehållet i Request Header genom:  request.getHeader()  request.getHeaderNames()  request.getContentType()  request.getContentLength()

15 15 HttpServletRequest  Andra användbara metoder är:  request.getMethod()  request.getProtocol()  request.getRequestURI()  request.getParameter()  request.getCookies()

16 16 HttpServletResponse  HTTP Response = serverns svar  Här finns metoder som t ex  response.addCookie() //lägg till en kaka En annan användbar metod är: response.getWriter() PrintWriter Öppnar en PrintWriter för utskrifter

17 17 Cookies/Kakor  Med kakor så kan besökarnas individuella önskemål registreras och kommas ihåg  En vanlig MEN omdiskuterad teknik  I en del webbläsare är kakfunktionen avstängd  Cookies är inte en del av HTTP utan en bit data som kan bäddas in i en request | response Netscape extension  Från början en Netscape extension

18 18 En liten enkel servlet Vi ska nu titta på koden för en riktigt enkel servlet som inte gör mer än att skriva ut det gamla vanliga Hello World ! Först behövs följande importsatser: import java.io.*; import javax.servlet.*; import javax.servlet.http.*;

19 19 En liten enkel servlet public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { String protokoll = request.getProtocol(); response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(" ");

20 20 En liten enkel servlet out.println(" Hello World! "); out.println(" "); out.println(" Hallå klient! "); out.println(" Protokollet är: "); out.println(protokoll + ” "); out.println(" "); } } Paus 15 minuter

21 21 Apache Tomcat  Det finns flera sätt att köra servlets  Ett mycket vanligt sätt är m h a Tomcat  Som alltid när det gäller Apacheprodukter  helt fri att använda  öppen källkod  Följer servlet- och JSP-specifikatioerna  Det sätt som vi kommer att använda  MEN det finns kommersiella alternativ

22 22 Apache Tomcat  Det kommer hela tiden nya versioner  Det finns en del smådetaljer som skiljer Mer information finns på:

23 23 Apache Tomcat  Starta Tomcat: startup.bat startup.sh  Stoppa Tomcat: shutdown.bat shutdown.sh

24 24 Apache Tomcat  Anropa Tomcat genom:  

25 25 Apache Tomcat  Om du använder SDK standard edition  Se till att servlet.jar finns med i din CLASSPATH  Exempelvis:  SET CLASSPATH=.;E:\tomcat\lib\servlet.jar servlet-api.jar  OBS jar-filen heter fr o m version5 servlet-api.jar  I autoexec.bat för Win9X  I kontrollpanelen/miljövariabler för WinXP

26 26 Apache Tomcat  Två andra miljövariabler är:  JAVA_HOME ( Exempelvis: C:\jdk1.5.x\ )  och  CATALINA_HOME ( Sökvägen till Tomcat )

27 27 Konfigurationsfiler Tomcat har många konfigurationsfiler Två av dem är:  web.xml servlets  mappning av servlets CATALINA_HOME\webapps\context\WEB-INF\  server.xml servlet context mm  Mappning av servlet context mm CATALINA_HOME\conf\

28 28 XHTML för servlets  Vanligt är att starta en servlet från ett XHTML-dokument  Användbara taggar är   type = "text”  type = "submit "

29 29 XHTML för servlets Hej, fyll i för och efternamn:


30 30 Uppgift D  Nu kan ni köra igång med Uppgift D Tack för idag!


Ladda ner ppt "1 ITK:P2 F9 HTTP, Java servlets och Apache Tomcat DSV Peter Mozelius."

Liknande presentationer


Google-annonser