1 / 30

ITK:P2 F9

ITK:P2 F9. HTTP, Java servlets och Apache Tomcat. DSV Peter Mozelius. Klienter och servrar. HTTP. HTTP ( H yper T ext T ransfer P rotocol) är ett protokoll som framför allt talas mellan webbläsare och webbservrar

kirima
Download Presentation

ITK:P2 F9

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Klienter och servrar

  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. 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 http://host[:port]/path/filename[#section] (+ eventuell följande ?query_string)

  5. URL • Vi tittar på den URL som leder fram till en hemsida med lite material till denna kurs: http://www.dsv.su.se/~mozelius/ITKP2/ http://host[:port]/path/filename[#section] • protocol/protokoll är http:// • host/värddator är www.dsv.su.se • port ärHTTP:s defaultport:80 • path/sökväg är ~mozelius/ITKP2/ • filename/filnamn blir index.html

  6. HTTP kommandon • GET • POST • HEAD • TRACE • PUT • DELETE

  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. 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. 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. Klient-server med servlets

  11. Servlets och HTTP • Metoder för HTTP i en servlet • doGet() • doPost() • doHead() • doTrace() • doPut() • doDelete()

  12. 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(HttpServletRequestrequest, HttpServletResponse response) { • Här finns koden som gör jobbet; • } • public void doPost(HttpServletRequestrequest, HttpServletResponse response) { • doGet(request, response); • }

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

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

  15. 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() Öppnar enPrintWriter för utskrifter

  16. 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 • Från början en Netscape extension

  17. 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.*;

  18. 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("<html>"); out.println("<head>");

  19. En liten enkel servlet out.println("<title>Hello World!</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Hallå klient!</h1>"); out.println("<p>Protokollet är: "); out.println(protokoll+ ”</p>"); out.println("</body>"); out.println("</html>"); } } Paus 15 minuter

  20. 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

  21. Apache Tomcat • Det kommer hela tiden nya versioner • Det finns en del smådetaljer som skiljer Mer information finns på: http://jakarta.apache.org/tomcat/

  22. Apache Tomcat • Starta Tomcat: • startup.bat • startup.sh • Stoppa Tomcat: • shutdown.bat • shutdown.sh

  23. Apache Tomcat • Anropa Tomcat genom: • http://127.0.0.1:8080/ • http://localhost:8080/index.jsp

  24. 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 • OBS jar-filen heter fr o m version5 servlet-api.jar • I autoexec.bat för Win9X • I kontrollpanelen/miljövariabler för WinXP

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

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

  27. XHTML för servlets • Vanligt är att starta en servlet från ett XHTML-dokument • Användbara taggar är • <form> • <input> • type = "text” • type = "submit"

  28. XHTML för servlets <h4>Hej, fyll i för och efternamn:</h4> <form action = "http://localhost:8080/mozelius/F3" method = "get"> <p> <label> <input type = "text" name = "fnamn" value =”Bo" /> <input type = "text" name = "enamn" value =”Ek"/> <input type = "submit" value = "Skicka" /> </label> </p> </form>

  29. Uppgift D • Nu kan ni köra igång med Uppgift D Tack för idag!

More Related