Hello, I need to add a new value to the request object. I am using the request.setAttribute(String,Object) and then using request dispatcher to forward the request from a servlet to another servlet, but the added attributes dont seem to forwarded, how do forward an request object along with the newly added value? Thanks
Joined: Jan 07, 1999
In general redirecting requests in this way does not pass the attributes. Why not put your values in the session, and retrieve them in the destination servlet?
The problem is the code to loginServlet is already created and we dont want to touch the code. In LoginServlet we are also creating a brand new session object. From DataServlet I am passing two values in the request which is already there. But I also need to add one more brand new one into the request, before I forward to the LoginServlet. One thing I can to is call the DataServlet by passing all the three values in the request and directly forward this to the LoginServlet. But I have to change all the links in many places. So I thout I could just add here before forwarding the request. Is there a way?
Personally I strongly disagree with putting transient information on the Session object. The first reason is that sessions are generally pretty heavy and you end up packing it with extra data that sits on the server if the session isn't invalidated or until the server cleans it up. Secondly it can cause unexpected application behaviour if the client uses the back button or jumps several pages backwards. Which app server are you using? It might be a bug in their implementation of setAttribute()
Joined: Dec 14, 2000
I am using VAJ with WebSphere.... I am doing, request.setAttribute("action","LOGIN"); request.setAttribute("type","name"); RequestDispatcher reqDispatcher = this.getRequestDispatcher("webapp/LoginServlet"); reqDispatcher.forward(request, response);
But the attibutes action and type are not being passed. What am I doing wrong?