You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cactus-user@jakarta.apache.org by "Brehm, Robert P" <ro...@office.xerox.com> on 2004/09/29 02:33:23 UTC

Overriding a Servlet Context Parametners

All,

I have an application where I would like to override certain servlet context parameters.  In my application they are "serverhost" and "serverport".   I tried to do this:

public void beginLoginJSP(WebRequest response) throws Exception {
	sc = (AbstractServletContextWrapper) this.config.getServletContext();
	String hostname = (String) sc.getInitParameter("serverhost");
	int port = Integer.parseInt((String) sc.getInitParameter("serverport"));
	sc.setInitParameter("serverhost","localhost");
	sc.setInitParameter("serverport","7000");
}//method

public void testLoginJSP() throws Exception {
	sc.getRequestDispatcher("/login.jsp").forward(request,response);
}//method

But in my login.jsp there are the following two lines:
	String serverHost = application.getInitParameter("serverhost");
    	int serverPort = Integer.parseInt((String) application.getInitParameter("serverport"));

These lines always have then initial web.xml values, not the ones that I reassigned in beginLoginJSP.   Is there something that I am not realizing?  Any help would be appreciated!

Regards,
Bob Brehm
Software Engineer
Xerox Corp.

Re: Overriding a Servlet Context Parametners

Posted by Kazuhito SUGURI <su...@lab.ntt.co.jp>.
Hi,

In article <B5...@USAWVMS08-BK.opbu.xerox.com>,
Tue, 28 Sep 2004 17:33:23 -0700,
"Brehm, Robert P" <ro...@office.xerox.com> wrote: 
robert> public void beginLoginJSP(WebRequest response) throws Exception {
robert> 	sc = (AbstractServletContextWrapper) this.config.getServletContext();
robert> 	String hostname = (String) sc.getInitParameter("serverhost");
robert> 	int port = Integer.parseInt((String) sc.getInitParameter("serverport"));
robert> 	sc.setInitParameter("serverhost","localhost");
robert> 	sc.setInitParameter("serverport","7000");
robert> }//method
robert> 
robert> public void testLoginJSP() throws Exception {
robert> 	sc.getRequestDispatcher("/login.jsp").forward(request,response);
robert> }//method

AbstractServletContextWrapper#setInitParameters() does not change
the corresponding init-parameter value of the original ServletContext.
So, the re-assigned values cannot be refered from other servlets,
including a servlet generated from your login.jsp.


robert> But in my login.jsp there are the following two lines:
robert> 	String serverHost = application.getInitParameter("serverhost");
robert>     	int serverPort = Integer.parseInt((String) application.getInitParameter("serverport"));

BTW, why are you using init-parameters instead of attributes?

Regards,
----
Kazuhito SUGURI
mailto:suguri.kazuhito@lab.ntt.co.jp