1. Vad är JSP?
JSP (Java Server Pages) är ett "enklare" sätt att skriva servlets. När en JSP-sida anropas första gången omvandlas den till en servlet som sedan kompileras. Själva översättningen kallas för tolkning och är det första steget i JSP-sidans livscykel som beskrivs nedan:
- Tolkning: JSP-tolken översätter JSP-sidan till servletkod. Utförs bara första gången JSP-sidan anropas.
- Servleten kompileras till en klass. Utförs bara första gången JSP-sidan anropas.
- Klassen laddas.
- En instans av klassen skapas.
- jspInit() anropas.
- _jspService() anropas. Objekten request and response skickas med till _jspService.
- jspDestroy() anropas.
Eftersom steg 1 och 2 bara utförs första gången JSP-sidan anropas är svarstiden långsam första gången. Sedan är JSP-sidan en servlet och svarar lika snabbt som vilken servlet som helst.
2. Elementen i JSP
JSP-sidan består av HTML med inslag av javakod, nedan listas de olika element som används för att inkludera javakod:
Namn | | Syntax | | Beskrivning |
Kommentar | | <%--En kommentar--%> | | Här skriver man kommetarer som beskriver programmet för programmeraren. |
Deklaration | | <%! kod %> | | Här deklarerar man variabler och funktioner. |
Scriptlet | | <% kod %> | | Koden evalueras. Koden kan bestå av flera satser och varje sats ska avslutas med ett semikolon (;). |
Uttryck | | <%=sats %> | | Satsen evalueras och skrivs till HTML-sidan på den plats där uttrycket förekommer. Satsen ska inte avslutas med ett semikolon (;). |
Direktiv | | <%@ dir att="val" %> | | Med ett direktiv kan man göra olika inställningar för JSP-sidan. |
XML-märke | | <lib:tag att="val" /> | | Märken tag hämtas från ett märkesbibliotek lib. Alla märkesbibliotek förutom biblioteket jsp måste deklareras innan de kan användas. |
3. Ett exempel
Nedan ges ett exempel på hur man använder kommentarer, deklarationer, scriptlets och uttryck:
<%-- This page is just for testing,
do what you like with it. --%>
<%!
private int counter=0;
public void multiply(int i){
counter*=i;
}
%>
<HTML>
<BODY>
<H1>Första JSP-sidan</H1>
counter=<%= counter %>
<BR/><% counter+=2; out.print("counter="+counter); %>
<% multiply(5); %>
<BR/>counter=<%= counter %>
</BODY>
</HTML>
|
Spara programmet med sökvägen CATALINA_HOME/webapps/programmera/testjsp.jsp. Sidan genererar följande utskrift:
4. Direktiv
Direktiven har som syfte att göra speciella inställningar för JSP-sidan. Det finns tre typer av direktiv:
- page: Gör inställningar för sidan.
- include: Inkluderar en fil i sidan.
- taglib: Inkluderar ett märkesbibliotek, så att det sedan kan användas i sidan.
Läs mer om direktiv på sidan
direktiv .
5. XML-märken
På denna webbplats beskrivs:
- Hur man skapar och använder märkesbibliotek beskrivs på sidan
märkesbibliotek .
- Märkesbiblioteket jsp. Detta bibliotek behöver inte inkluderas med ett direktiv, det är alltid aktivt. Med detta bibliotek kan man:
- Skapa olika JSP-element, scriptlets, uttryck, osv, på ett alternativt sätt.
- useBean: Inkluderar en böna i sidan.
- include: Inkluderar en sida.
- forward: Gör en omdirigering till en annan webbsida.
- plugin: Inkluderar en resurs i sidan, t.ex. en applet.
Hur man använder märkesbiblioteket jsp beskrivs på sidan
JSP-märken .