webForumDet fria alternativet

init parametrar till servlets

6 svar · 419 visningar · startad av swede

swedeMedlem sedan feb. 2004230 inlägg
#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.

andreascarlssonMedlem 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");
}
jmeMedlem 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>

ViktorMedlem 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

swedeMedlem 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?

ViktorMedlem 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

swedeMedlem sedan feb. 2004230 inlägg
#7

....

132 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)