Ladda ner presentationen
Presentation laddar. Vänta.
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 http://host[:port]/path/filename[#section] (+ 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: http://www.dsv.su.se/~mozelius/ITKP2/ http://host[:port]/path/filename[#section] protocol/protokoll är http:// host/värddator är www.dsv.su.sewww.dsv.su.se port är HTTP:s 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å: http://jakarta.apache.org/tomcat/
23
23 Apache Tomcat Starta Tomcat: startup.bat startup.sh Stoppa Tomcat: shutdown.bat shutdown.sh
24
24 Apache Tomcat Anropa Tomcat genom: http://127.0.0.1:8080/ http://localhost:8080/index.jsp
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: <form action = "http://localhost:8080/mozelius/F3" method = "get">
30
30 Uppgift D Nu kan ni köra igång med Uppgift D Tack för idag!
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.