First of all getParameterValues() is there in the superclass ServletRequest as well... Read the topic on request parameters once again....getParameterValues(String str) returns multiple values associated with a particular request parameter (parameter name being passed as a String argument)....there is no way you can get it by calling getParameterValues from ServletContext.....
However, you can get the context init parameter by calling getInitParameter(String s) on the servlet context.
ok.So I will conclude it this way <B> Only in case of request where we may encounter a situation where we have to send multiple values with the same name through request url from client,we have this provision.In other cases like session or context where it can be done only at the server side,we dont have this facility. </B> Please correct me if I am wrong
Cheak out the return type of the getParameterValues() .It's an array of String . As we know that request stores it's attributes in Map where key is a String and value is a object . Those are generated during run time .
>>What if I want to associate multiple values with the same name in Context? Multiple values you can't add since ServletContext also uses Map to store it's Attributes . And it has to be a Key value pare .
Ya .......You can do one thing ..... Using ServletContextListener you can add object in ServletContext. In that way you can put a collection of object in ServletCotext also. Now as you was getting a bunch of objects in getParameterValues(), you can do the same here .
Don't confuse parameters(associated with request) and init Paramaters(associated with servlet config and servlet context) with attributes (page scope(for JSPs only), request scope, session scope or application(or context) scope)
No attribute can have multiple values (even for a Map it's a single value- a Map) Only request parameter can have multiple values for the same request parameter
That's it. [ November 30, 2006: Message edited by: Sayak Banerjee ]