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:
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:
<HTML>
<BODY>
<H1>Skriv till logfilen</H1>
<% application.log("hej"); %>
</BODY>
</HTML>
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:
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:
<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>
För att parametrarna ska läsas måste servern startas om. Efter detta ser vi:
<context-param>
<param-name>DATA_PATH</param-name>
<param-value>c:\programmera\datafile.txt</param-value>
</context-param>
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():