Første |
|
|
Servlets og JSP serie, Planche nr. 19 |
 |
Udskrift af : Servlets og JSP
|
Planche 1 : Servlets og JSP
- Hvor bruges servlets
- Servlet API'en
- JSWDK
- HTTP-servers
- Hvad er JSP
Planche 2 : Baggrund
Tag en typisk 3-lags Client/server løsning

Traditionelt har man kodet klienten i Java, HTTP-serveren i PERL (eller
Visual Basic) og hosten i Cobol.
Planche 3 : Java-mulighed
Med Servlets kan man:
- Håndtere HTTP-requests
- Sende HTML-sider tilbage
Servlets kan erstatte CGI-scripts helt!
- men er platformsuafhængige
Planche 4 : Anvendelser
Som traditionel webserver:
- Transaktionssystem
- e-Handel, reservationssystemer
Som avanceret webteknologi
- Konferencesystemer
- Beskeder
- Synkronisering
- "Loadsharing"
Planche 5 : javax.servlet
Pakken javax.servlet indeholder servlet-klasserne

Servlet er et interface. Ens klasse implementerer en eller flere af metoderne i interfacet.
Planche 6 : Kommunikation
Et servlet-objekt modtager fra systemet to objekter for hver HTTP-request:
- ServletRequest
- ServletResponse
Defineret som interfaces i javax.servlet
Planche 7 : ServletRequest
Giver adgang til
- Oplysninger om klienten
- En inddatastrøm at typen ServletInputStrem
Planche 8 : ServletResponse
Giver adgang til
- Sæt (HTTP)datatyper
- En uddatastrøm af typen ServletOutputStream
Planche 9 : En HTTP-server
Eksempel:
public class SimpleServlet extends HttpServlet
{
/**
* Handle the HTTP GET method by building a simple web page.
*/
public void doGet (HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
PrintWriter out;
String title = "Simple Servlet Output";
// set content type and other response header fields first
response.setContentType("text/html");
// then write the data of the response
out = response.getWriter();
out.println("<HTML><HEAD><TITLE>");
out.println(title);
out.println("</TITLE></HEAD><BODY>");
out.println("<H1>" + title + "</H1>");
out.println("<P>This is output from SimpleServlet.");
out.println("</BODY></HTML>");
out.close();
}
}
Planche 10 : Forklaring til eksempel
- SimpleServlet udvider HTTPServlet-klassen
- Overskriver doGet-metoden
- doGet-metoden kaldes, når klienten har sendte en GET-request
- Svaret sættes i et objekt af typen HTTPServletResponse
- HTML-siden skrives til PrintWriter-objektet out, som fås fra HTTPServletResponse
Planche 11 : Servletters "levetid"
Som applets har servlets en livscyklus:

Metoder
=hNyttige muligheder
Det er muligt at styre sessioner og cookies:
- Sessioner
- klasse HttpSession
- fås med getSession(true)
- Cookies
- opret et Cookie(navn, værdi)
- sæt parametre (set-metoder)
- send med addCookie(cookie-objekt)
- hent med getCookies() // returnere array af Cookie-objekter
- hent værdier med get-metoder
Planche 12 : Set miljø op
En Servlet startes af
- En webserver med servlet support
- Servletrunner
- JavaServer Web Development Kit (jswdk)
Planche 13 : Servletrunner
Servletrunner er et server-program, der er inkluderet i Java Servlet Developers Kit (jsdk)
Det kan stadig hentes hos www.javasoft.com
Planche 14 : JSWDK
JSWDK v.1.0 er på CD-rom
Udpak (unzip) til C:\
gå ned i C:\jswdk1_0\
læs evt. README.TXT
Start server med 'startserver' kommando i DOS-box'en
Stop server med 'stopserver' samme sted.
Giv URL 'http://localhost/8080' i en browser
Planche 15 : Øvelse
1) Få server til at virke.
- Dokumentation, eksempler og API'er kan læses
2) Få snoop-servlet til at virke
3) Lav en baglaens-servlet, i.e. der vender rundt på en tekststreng, modtaget mesom variabel.
Planche 16 : Java Server Pages (JSP)
JSP er en teknologi til at bygge applicationer med dynamisk indhold på en webserver, ved hjælp af bl.a. HTML, DHTML, XHTML og XML.
JSP giver følgende fordele:
- Adskiller dynamisk og statis indhold
- Understøtter scripting og tags
- "Write Once, Run Anywhere (TM)"
- Kan bruge de bedste værktøj
- Genbruger komponenter og tags
- En del af Java 2 Enterprise Edition (J2EE)
Planche 17 : Hvad er en JSP-side
Et lille eksempel:
<html>
<jsp:useBean id="clock" class="calender.jspCalender" />
<ul>
<il>Day: <%=clock.getDayOfMonth() %>
<il>Year: <%=clock.getYear() %>
</ul>
</html>
Planche 18 : JSP funktioner
JSP-funktioner i v.1.0
- JSP standard kommandoer (directives)
- JSP standard aktioner
- JSP scriptsporg, "scriptlets" og udtryk
Planche 19 : JSP model
En webserver indeholder en JSP-engine.
- Modtager client-request og videresender det til en side
- Modtager sidens response og videresender til client
- Funktionen svarer til en servlets
Se kapitel 1 af JSP spec. version 1 (findes kun som pdf/ps)
© 1999 BLA*net - Leif E. Andersen,
leander@blanet.dk