Hi,
this inquiry is a continuation of the inquiry on servlet initialization
parameters
by Murthy Kakarlamudi. Look at this simple servlet code
import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class InitTest extends HttpServlet {
public String host;
public String name;
public Enumeration servletparmEnum;
public void init(ServletConfig config) throws ServletException {
super.init(config);
//servletparmEnum = getServletConfig().getInitParameterNames();
host = config.getInitParameter("host");
name = getServletConfig().getServletName();
}
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException,IOException {
ServletContext sc = this.getServletContext();
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.println("<html><head><title>Servlet and Context Parameters
Example</title></head>");
//
// ServletConfig initialization parameters
//
servletparmEnum = getServletConfig().getInitParameterNames();
out.println("<hr/>");
if (servletparmEnum.hasMoreElements()) {
out.println("<b>Servlet initialization parameters</b><br/>");
}
else {
out.println("<b>There are no Servlet Initialization parameters</b><br/>");
}
while (servletparmEnum.hasMoreElements()) {
String servletparmName = (String)servletparmEnum.nextElement();
out.println("<b>" + servletparmName + ": </b>");
out.println(getServletConfig().getInitParameter(servletparmName) +
"<br/>");
}
//
// ServletContext parameters
//
Enumeration contextparmEnum = sc.getInitParameterNames();
if (contextparmEnum.hasMoreElements()) {
out.println("<b>ServletContext Parameters</b><br/>");
}
else {
out.println("<b>There are no ServletContext parameters</b><br/>");
}
while (contextparmEnum.hasMoreElements()) {
String contextparmName = (String)contextparmEnum.nextElement();
out.println("<b>" + contextparmName + ": </b>");
out.println(sc.getInitParameter(contextparmName) + "<br/>");
}
//
// Request parameters
//
Enumeration reqparmEnum = req.getParameterNames();
if (reqparmEnum.hasMoreElements()) {
out.println("<b>Request parameters</b><br/>");
}
else {
out.println("<b>There are no parameters for this REQUEST</b><br/>");
}
while (reqparmEnum.hasMoreElements()) {
String reqparmName = (String)reqparmEnum.nextElement();
out.println("<b>" + reqparmName + ": </b>");
out.println(req.getParameter(reqparmName) + "<br/>");
}
out.println("<body>this is string for parameter host : "+host +"<br/>");
out.println("<body>this is string for Servlet name : "+name+"<br/>");
out.println("</body></html>");
}
}
Provided we have prepared <servlet-mapping> element for InitTest in our
web.xml
as well as suitable element for sample context parameter
<context-param>
<param-name>fullname</param-name>
<param-value>Piotr Korzybski</param-value>
</context-param>
the output for the request like that
http://host:8080/simple/Test?user=piko
is similar to
Servlet initialization parameters
host: www.company.com
ServletContext Parameters
fullname: Piotr Korzybski
Request Parameters
user: piko
this is string for parameter host : www.company.com
this is string for Servlet name : Test
When running servlet with servletparmEnum initialized in init() function,
(but send to output in doGet()) after reloading the first line of the output
is
There are no Servlet initialization parameters
When initializing servletparmEnum in doGet, reloading does not change the
initial output.
I know, init() is called once for servlet instance. So why Strings host and
name
do not "vanish" as well?
I apologize for so long (and maybe boring) presentation of my inquiry.
Regards
Piotr
___________________________________________________________________________
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff SERVLET-INTEREST".
Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html