290 likes | 414 Views
JSP presentasjon. Arild Strømhylden NTNU 27 September 2014. Innledende beskjeder. HTML hefte ikke i salg på Tapir ennå De 3 første kapitlene er lagt ut på hjemmesiden til faget. Introduksjon. Java Server Pages Websider med dynamisk innhold. JSP.
E N D
JSP presentasjon Arild Strømhylden NTNU 27 September 2014
Innledende beskjeder • HTML hefte ikke i salg på Tapir ennå • De 3 første kapitlene er lagt ut på hjemmesiden til faget
Introduksjon • Java Server Pages • Websider med dynamisk innhold
JSP • Tillater rask utvikling av nettbaserte applikasjoner • Platformuavhengig • Likheter med PHP og ASP
Hva er JSP • JSP = HTML + Java • Tillater javakode blandet med HTML tags • Kan designe sider som produserer forskjellig informasjon som resultat av utførelse av javakoden
Hva med gjenbruk? • Inkludering av andre sider • Servlets • JavaBeans • Enterprise JavaBeans
En enkel scriptlet <html> <p>Tid: <%= new java.util.Date() %></p> </html> http://www.stud.ntnu.no/~arildstr/jspkurs/script1.jsp
Scripting elementer • Expressions • Scriptlets • Declarations
Expressions <%= expression %> • Alternativ syntax: <jsp:expression>expression</jsp:expression> • expression evalueres og resultatet sendes med responsen
Scriptlets • <% script %> • Alternativ syntax: <jsp:scriptlet>script</jsp: scriptlet> • script er her javacode som kan være på flere linjer • Blir kompilert og utført som en Servlet
Declarations • <%! declarations %> • Alternativ syntax: <jsp:declaration>declarations</jsp:declaration> • declaration settes inn i den kompilerte servleten utenfor konteksten til eksisterende metoder
Parametre <-> Variabler <html> <% String bgfarge = request.getParameter(”bgfarge”); %> <body bgcolor=”<%= bgfarge %>”> <h2>Bakgrunnsfarge: <%= request.getParameter(”bgfarge”) %> </h2></body> </html> http://www.stud.ntnu.no/~arildstr/jspkurs/script2.jsp?bgfarge=yellow
Hva så? • Variabler kan deklareres i en scriptlet og refereres senere • Expressions henter ut og viser en variabel • request.getParameter benyttes for å behandle parametre sendt inn til jsp siden
Predefinerte variabler • request • response • session • out Eksempel <p> Maskin: <%= request.getRemoteHost() %> <% out.print(”<br><font color=\”blue”>Blå tekst</font>”) %> </p> http://www.stud.ntnu.no/~arildstr/jspkurs/script3.jsp
Flere predefinerte variabler • application • config • pageContext • page • Ikke så mye brukt i starten
Deklarasjon av metoder • Deklarasjoner: <%! … %> <%! int gangMed(int tall, int tall2) { int resultat = tall * tall2; return resultat; } // Samme som: return tall*tall2; %> <html> <% int verdi = 10; out.print(gangMed(verdi, verdi)); %> </html> http://www.stud.ntnu.no/~arildstr/jspkurs/script4.jsp
Dere kan jo selvfølgelig… • if (condition) {…} else { … } • while (condition) { … } • for (init; condition; execute) { … } • Standard java syntaks
Direktiver • <%@ direktiv attributt=”verdi” %> • Eksempler: <%@ page import=”java.util.*” %> <%@ page contentType=”text/plain” %>
Gøy med jsp • XML dokument generering • Behandling av informasjon fra skjema (Gjennomgang av eksempel fra hefte) • Inkludere en side i en annen
Generere XML dokument <%@ page contentType="text/xml" %> <?xml version="1.0" encoding="UTF-8" ?> <myetekst> <text>JSP</text> <text>er</text> <text>ufattelig kult!</text> </myetekst> http://www.stud.ntnu.no/~arildstr/jspkurs/xmlscript.jsp
Sending av skjemadata Form.html <html> <form method="post" action="processform.jsp"> <h2> Navn: <input type="text" size="30" name="navn"> </h2> </form> </html> processform.jsp <html> <h2> Du skrev inn: <%= request.getParameter("navn") %> </h2> </html>
Sending av data (litt mer avansert) <HTML> <HEAD><TITLE><%=request.getParameter("navn")%> er registrert</TITLE></HEAD> <BODY><H2>Dette er registrert</H2> Navn: <%=request.getParameter("navn")%><BR><BR> Epost: <%=request.getParameter("epost")%><BR><BR> Kjønn: <% if(request.getParameter("kjonn").equals("k")){ out.println("Kvinne"); }else{ out.println("Mann"); }%> <BR><BR> Vil ha tilsendt epost: <% if(request.getParameter("vilhaepost") != null){ out.println("JA"); }else{ out.println("NEI"); } %> <%--Her kommer databasekoden i neste kapittel--%> </BODY> </HTML>
Translation/request time • Translation time • JSP motoren gjør om filen til en servlet. • Request time • Servleten kjøres for å generere en side.
Inkludere og importere • <jsp:include> • Inkludere en fil før transformering av jsp kode • <jsp:import> • Importere java klasser
Include header.jsp <% out.println("<br><h2><font color=\"blue\">Topp</font></h2>"); %> footer.jsp <% out.println("<br><h2><font color=\"blue\">Bunn</font></h2>"); %> inkluder.jsp <jsp:include page=”header.jsp” /> <p>Her kommer litt tekst i midten</p> <jsp:include page=”footer.jsp” /> http://www.stud.ntnu.no/~arildstr/jspkurs/inkluder.jsp
Begrensninger ved stud • Ikke servlets • Ikke JavaBeans • Problemer med session
Konsekvenser • Må repetere kode som er felles for flere sider gjennom include eller kodereplisering på flere sider
Tekniske tingtang • Resin v2.0.1 og mod_caucho for Apache (http://www.caucho.com/products/resin/) • Bytekode lagres lokal på webserveren • 4 webservere • Samme fil kan kompileres 4 ganger • Vanskelig å slette (bytekoden må slettes fra alle webserverene) • Alle bytekode filer slettes etter 10 dager
Problemer • Faglige • undass-sif8001@idi.ntnu.no • Tekniske • teknisk-sif8001@idi.ntnu.no