I suggest you look at ServletRequest.setAttribute()

In programming Servlets - you can work with parameters which are the fun little things which come off the query string or via the POST body. These items should be thought readonly - and only set/sent from the HttpClient (aka - the web browser).

As a programmer - you wish to pass extra information along to other Servlets, Filters, etc - the recommended way is to attach that baggage to the ServletRequest via setAttribute.

In a typical MVC setting - a servlet will use the request parameters to construction objects which are then placed into the ServletRequest via setAttribute. Then the servlet forwards to a view and the view pulls all needed data from the ServletRequest via getAttribute. Using request parameters in the view is typically an invitation to an XSS attack.

-Tim

Jonathan Mast wrote:
| This is really the only way to do it. The other option is to create a
| new request object and stuff your own parameters into it (or, better
| yet, wrap the original request and add your parameters only to the
wrapper).

How would I do this?  This is basically what Jakarta Commons HTTPClient
package (org.apache.commons.httpclient.*) offers, correct?

I thought such manipulation would be achievable without additional packages.


| Why do you believe that adding parameters to the URL is not scalable?
Well, its not scalegent, to coin a term;
String munging is expensive (scalability), and
StringBuffer sb = new StringBuffer();
sb.append("page.jsp?").append("foo=").append(bar).append("&color=").append(myColor).etc()
is rough to look at (elegent).

Why not just:
HashMap myParams = new HashMap();
myParams.put("foo", bar);
...
pageContext.forward("page.jsp", myParams)   ?

much more efficient and elegent, imho.

I understand that it all eventually boils down to a bunch of String munging,
but the above hypothetical method could take of it that for us and would
really make my life easier ;-)

thanks



On Wed, Aug 6, 2008 at 1:17 PM, Christopher Schultz <
[EMAIL PROTECTED]> wrote:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Jonathan,

Jonathan Mast wrote:
| I can't figure out how to use the pageContext.forward() method like it's
| equivalent script element:

Do you mean that you want to add parameters to a forwarded URL without
using JSP?

| How do I pass the name-value pair "foo":"bar" using
pageContext.forward()? I
| thought there would be a method like forward(String path, Map params) but
| there isn't.

Right: you just forward to another URL.

| Nor is there a setParameter(name, value) method available on
ServletRequest
| or ServletResponse (both of which are passed onto the page pointed to in
| pageContext.forward().


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to