programmera.net -> jsp -> normal     för utskrift      info@programmera.net

Implicita objekt i JSP

1. Vad är Implicita objekt?
2. Servlet och implicita objekt
3. HTTP
4. request
5. response
6. out
7. session
8. application
9. config
10. exception
11. page

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.