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

application

1. Det implicita objektet application
2. Spara objekt i applikationen
3. Skriva till logfilen
4. Hämta initparameterar
5. Information om filer
6. Övriga metoder

1. Det implicita objektet application

Objektet är av typen javax.servlet.ServletContext. application-objektet hanterar resurser som är gemensamma för applikationen, som t.ex. att skriva till logg-filen eller komma åt initparametrarna. En servlet måste hämta application-objektet ur config-objektet för att ha tillgång till det. Du hämtar application-objektet såhär:
ServletContext application=config.getServletContext();

2. Spara objekt i applikationen

Ibland vill man lägga till objekt till applikationen, dessa objekt delar alla anvädare på. Du kan addera och ta bort objekt med dessa metoder:

Metoder Returnerar Beskrivning
getAttributeNames()  Enumeration  Returnerar en Enumeration innehållande alla namnen på de objekt som finns lagrade i applikationen.
setAttribute(String name, Object obj)  void  Lägger till objektet obj till applikationen.
getAttribute(String name)  Object  Returnerar det objekt som har namnet name.
removeAttribute(String name)  void  Tar bort det objekt som har referensen name ur applikationen.

3. Skriva till logfilen

Att regelbundet lägga in små utskrifter till logg-filen i din kod underlättar felsökningen. Det finns två metoder som gör detta:

Metoder Returnerar Beskrivning
log(String msg)  void  Skriver msg till logg-filen, inklusive datum.
log(String msg, Throwable exception)  void  Som ovan men skriver även ut stacktrace på undantaget.

I exemplet nedan skriver vi till logg-filen:
<HTML>
<BODY>
<H1>Skriv till logfilen</H1>
<% application.log("hej"); %>
</BODY>
</HTML>
Vi sparar filen till CATALINA_HOME/webapps/programmera/log.jsp. Vi kör log.jsp en gång och försöker sedan hitta vårt meddelande. I Tomcat4 ligger logg-filerna i mappen CATALINA_HOME/logs/. Sist i den nyaste filen hittar vi följande rad:
2003-09-07 17:12:59 hej

4. Hämta initparameterar

När en server startar läser den filen web.xml för varje applikation. I web.xml kan man deklarera parametrar (context-param) som man senare kan hämta ur application-objektet. Det finns två metoder för att hämta dessa parametrar:

Metoder Returnerar Beskrivning
getInitParameterNames()  Enumeration  Returnerar en Enumeration innehållande namnen på alla initparametrar.
getInitParameter(String name)  String  Returnerar värdet på den parameter som är knuten till name.

Vi gör en JSP-sida som läser initparametrar:
<HTML>
<BODY>
<H1>Läs initparametrarna</H1>
<%
String var,val;
java.util.Enumeration names=application.getInitParameterNames();
while(names.hasMoreElements()){
	var=(String) names.nextElement();
	val=application.getInitParameter(var);
	%>
<%=var %>=<%= val %><BR/>
<% } %>
</BODY>
</HTML>
Vi sparar sidan till CATALINA_HOME/webapps/programmera/initparam.jsp. Än så länge visar vår sida ingenting eftersom det inte finns några initparametrar i applikationen. Vi testar att skapa några initparametrar genom att klistra in följande i web.xml:
<context-param>
    <param-name>DATA_PATH</param-name>
    <param-value>c:\programmera\datafile.txt</param-value>
</context-param>  
För att parametrarna ska läsas måste servern startas om. Efter detta ser vi:

5. Information om filer

application har metoder som ger information om filer:

Metoder Returnerar Beskrivning
getMimeType(String path)  String  Returnerar MIME-typen på den specifierade filen.
getRealPath(String path)  String  Returnerar den verkliga sökvägen från en virtuell sökväg.
getResource(String path)  String  Returnerar URLen för resursen specifierad i path.
getResourcePaths(String path)  Set  Returnerar en mängd innehållande alla filer och mappar i den givna katalogen. Om path är en fil innehåller mängden bara filen om den finns.

6. Övriga metoder

application har en del övriga metoder som är nyttiga för programmeraren, nedan listas några:

Metoder Returnerar Beskrivning
getRequestDispatcher(String path)  RequestDispatcher  Returnerar en RequestDispatcher för resursen i path.
getNamedDispatcher(String name)  RequestDispatcher  Returnerar en RequestDispatcher för servleten name. name är ett servlet-name specifierat i web.xml.
getServerInfo()  String  Returnerar webb-behållarens namn och version.

Följande blir utskriften av getServerInfo():