webForumDet fria alternativet

init parametrar till servlets

Java

6 svar · 421 visningar · startad av swede

Medlem sedan feb. 2004230 inlägg
Frågan#1

Håller så sakteliga på att komma igång med servlets och har nu fastnat i att skicka parametrar från web.xml till servlets.

Jag tänkte definera db uppgifterna i web.xml så jag enkelt kan ändra uppgifterna utan att kompilera om en massa servlets.

I min web.xml har jag skrivit:
<init-param>
<!-- DB initialisation parameters -->
<param-name>db.host</param-name><param-value>localhost</param-value>
<param-name>db.name</param-name><param-value>test</param-value>
<param-name>db.user</param-name><param-value>test</param-value>
<param-name>db.pass</param-name><param-value>test</param-value>
</init-param>

Och i Servletens init ser ut som följer:
public void init() {
// Get DB configuration from Init parameters
host = getInitParameter("db.host");
db = getInitParameter("db.name");
user = getInitParameter("db.user");
pass = getInitParameter("db.pass");
}

Men jag får bara null som svar från getInitParameter..

Vad har jag missat?
Jag vill att alla mina servlets ska kunna komma åt dessa parametrar.

Medlem sedan feb. 2003202 inlägg
#2

Testa med följande kod:

public void init(ServletConfig config) throws ServletException 
{
    // Get DB configuration from Init parameters
   host = config.getInitParameter("db.host");
   db = config.getInitParameter("db.name");
   user = config.getInitParameter("db.user");
   pass = config.getInitParameter("db.pass");
}

eller om du inte vill hämta dem i init-metoden:

public void service(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException 
{
    // Get DB configuration from Init parameters
   host =getServletConfig().getInitParameter("db.host");
   db = getServletConfig().getInitParameter("db.name");
   user = getServletConfig().getInitParameter("db.user");
   pass = getServletConfig().getInitParameter("db.pass");
}
Medlem sedan maj 20012 237 inlägg
#3

Jag har det såhär i min Java-kod:

String t = getServletContext().getInitParameter("ACTION");

web.xml:

<context-param>
<param-name>ACTION</param-name>
<param-value>blablabla</param-value>
</context-param>

Medlem sedan aug. 20021 752 inlägg
#4

Det kan ju vara lite overkill att bara använda context parametrar när de bara ska användas i en servlet. Det bästa är att kombinera servlet parametrar och context parametrar :)

/Viktor

Medlem sedan feb. 2004230 inlägg
#5

Men var ska man placera DB connections parametrarna?
Det är ju flera servlets som kommer att använda sig av dem?

Ska man definera dem för varje servlet?

Medlem sedan aug. 20021 752 inlägg
#6

Om flera servlets ska ha samma parameter så kan det vara bra att lägga den som en context parameter.

/Viktor

Medlem sedan feb. 2004230 inlägg
#7

....

246 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)