1. Vad är Implicita objekt?
Implicita object är objekt som du inte behöver skapa själv, de skapas automatiskt. I en JSP-sida är följande objekt implicita:
Objekt | | Klass/Gränssnitt | | Hämtas ur | | Beskrivning |
request | | HttpServletRequest | | - | | Innehåller den förfrågan från webbläsaren som just nu processas av webb-behållaren. |
response | | HttpServletResponse | | - | | Innehåller svaret som ska skickas till webbläsaren. |
out | | ServletOutputStream | | response | | Används för att skriva till response-objektet. |
session | | HttpSession | | request | | Har som främsta uppgift att lagra objekt knutna till användarens session. |
application | | ServletContext | | config | | Kallas även för context-objektet. Har metoder som är gemensamma för applikationen. |
config | | ServletConfig | | - | | Används för att läsa initparametrar specifika för en servlet/JSP-sida. |
2. Servlet och implicita objekt
En servlet har inga implicita objekt, man har bara tillgång till de objekt som skickas med till den metod man befinner sig i, t.ex. i metoden doGet har man tillgång till objekten request och response, eftersom metodhuvudet ser ut såhär:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
|
Därför måste man hämta de övriga objekten ur andra objekt, det är detta som kolumnen Hämtas ur syftar på i tabellen ovan. Nedan beskrivs hur man kommer åt diverse objekt i en servlet:
- config-objektet får man genom att skriva ServletConfig config=getServletConfig();
- application-objektet får man ur config-objektet med ServletContext application=config.getServletConfig();.
- session-objektet får man ur request-objektet med HttpSession session=request.getSession();
- out-objektet får man ur response-objektet med ServletOutputStream out=response.getServletOutputStream();
3. HTTP
HTTP är det protokoll som används för att kommunicera mellan webbläsaren och webbservern, och alltså det internetprotokoll en webbprogrammerare i första hand vill lära sig. Här beskrivs HTTP mycket kort.
- HTTP-förfrågan: När en webbläsare vill hämta en webbsida från en server, skickar den en förfrågan via HTTP till nämnda server. När webbläsaren skickar en HTTP-förfrågan om en webbsida till en server, inkluderar den lite information om sig själv i HTTP-huvudet, bland annat sin IP-adress, webbläsartyp (Netscape/IE) och POST-variabler. Dessa variabler kan läsas av det implicita objektet request.
- HTTP-svar: Webbläsaren vill alltid ha ett svar på sin förfrågan. När servern skickar HTML till webbläsaren så skickar den ofta HTML i smådelar, så kallade paket. Varje sådant HTTP-paket har ett huvud (en header) och en kropp (body). Kroppen innehåller ofta HTML och huvudet kontrollinformation. Denna kontrollinformation är bland annat information om hur länge webbsidan ska sparas av webbläsaren, eventuella cookies som ska sparas och om man vill att webbläsaren ska riktas om till att hämta en annan sida istället. Allt som ska skickas webbläsaren skrivs till det implicita objektet response.
4. request
Objektet request låter dig hämta variabler som skickas till dig från webbläsaren. Vanligtvis kommer variablerna från ett formulär som användaren just har fyllt i. Sammanfattningsvis används objektet till att:
- Läsa parametrar från ett formulär.
- Läsa parametrar i HTTP-huvudet.
- Hämta information om användaren, t.ex. IP-adress.
- Hämta session-objektet och eventuella Cookie-objekt.
- Placera objekt i request så de kan delas av sidor som inkluderas eller sidor man omdirigerar till.
Objektet beskrivs på sidan
request .
5. response
Objektet response innehåller allt man ska skicka till webbläsaren. Sammanfattningsvis används objektet till att:
- Lägga till HTML-kod som skickas till webbläsaren.
- Lägga till parametrar i HTTP-huvudet.
- Skicka Cookie-objekt till webbläsaren.
- Sätta HTTP-kod.
- Koda om en URL så att sessioner kan användas trots att webbläsaren inte stödjer cookies.
Objektet beskrivs på sidan
response .
6. out
Objektet out finns som implicit objekt i JSP. I en servlet måste man hämta objektet ur response, som i följande exempel:
PrintWriter out=response.getWriter();
|
Objektet out används för att skriva till response-objektet, alltså det som användaren kommer att få se i sin webbläsare. Här kommer en JSP-sida som använder out:
<HTML>
<BODY>
<% out.println("Hello World!"); %>
</BODY>
</HTML>
|
7. session
Objektet session låter dig lagra objekt som överlever efter att JSP-sidan/servleten har avslutats. Läs mer på sidan
session .
8. application
Objektet application används för kommunicera med webb-behållaren. Huvudsakligen har objektet följande förmågor:
- Man kan enkelt kan skriva till serverns logg-fil.
- Läsa initparametrarna från web.xml.
- Placera objekt i application så de kan delas av alla användare.
Läs mer på
application .
9. config
Objektet config används för att läsa initparametrar för en servlet/JSP-sida. Objektet kan användas till att:
- Hämta ett application-objekt.
- Läsa initparametrarna från web.xml deklarerade inuti servlet-märket.
Objektet beskrivs på sidan
config .
10. exception
Objektet exception används framför allt till att hämta felmeddelanden efter att en JSP-sida/servlet har fått ett runtime-fel. För att exception ska vara tillgängligt i felsidan måste sidan deklareras som felsida med direktivet page isErrorPage="true", se
direktiv .
11. page
Objektet page är en referens till JSP-sidan själv. Kan användas istället för this.