Solved

Servlet argument passing

Posted on 2003-11-12
10
611 Views
Last Modified: 2013-11-24
Hi all. How can I pass arguments between servlets? I read arguments from HTML forms, but I can't find any resources on passing between servlets. E.g. via the url string with the '?' part...

0
Comment
Question by:piou
  • 4
  • 4
  • 2
10 Comments
 
LVL 1

Accepted Solution

by:
arunec earned 75 total points
ID: 9730081
Hi,
You can use :

In your servlet1 :

session.setAttribute("Test1", Test1 );
session.setAttribute("Test2", Test2 );

In your servlet2 :

String l1 = (String)session.getAttribute("Test1");
String l2= (String)session.getAttribute("Test2");

or u can use RequestDispatcher

request.setAttribute("test1", test1);    
   
RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher();
dispatcher.forward(request, response);

Regards,
arunec
0
 

Author Comment

by:piou
ID: 9730364
Thanks arunec. I was looking for something more simple, related to the getQueryString() method. Is there any automation implemented? Or should I just build *manually* the URLs so that the contain a tail after the '?', and then process that with a StringTokenizer...?

0
 

Author Comment

by:piou
ID: 9730479
Ok, I think I'm closer. There are these methods:

getQueryString()
getParameterNames()
getParameterValues()

But the API docs are not very clear on their usage. I think the answer lies around these methods, but I cannot find proper resources.

0
 
LVL 7

Expert Comment

by:grim_toaster
ID: 9730531
If you can avoid it, it is best to leave sessions out of the picture (unless there is one there already).

I would suggest looking into the ServletRequest interface methods setAttribute, getAttribute and getParameter, depending on your needs.  It would also be best to avoid writing your own code to deal with the query string, as there is already code availabel.

After you've set the value required to the request object, you can dispatch to the other servlet as stated by arunec.
0
 

Author Comment

by:piou
ID: 9730708
It doesn't seem to work. Shouldn't I set the ServletResponse instead? But only the request has a setAttribute() method. Doesn't make sense...
0
Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

 
LVL 7

Expert Comment

by:grim_toaster
ID: 9731071
You should be setting the attribute to the ServletRequest.  Ah, one slight problem with Arumec's code, when acquiring the request dispatcher you will need to specify the path of the resource you are trying to access:

request.setAttribute("name", "value");
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/relative/path/servlet");
dispatcher.forward(request, response);

Then in the servlet you dispatch the call to, do:
String value = request.getAttribute("name");
0
 
LVL 1

Expert Comment

by:arunec
ID: 9737128
yaa, i missed the path in RequestDispatcher,thanx grim
0
 
LVL 7

Expert Comment

by:grim_toaster
ID: 9737781
No problem!  Oops, I also missed something in my code!  The request.getAttribute("name"); call returns an Object, this will need to be cast to a String.
0
 

Author Comment

by:piou
ID: 9737895
Thank you guys. I hope grim has no problem for arunec to take the points, being first...
0
 
LVL 7

Expert Comment

by:grim_toaster
ID: 9746392
Nope, none whatsoever!  Sorry it's taken a while to reply!  I lost the link!
0

Featured Post

What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

Join & Write a Comment

Suggested Solutions

By the end of 1980s, object oriented programming using languages like C++, Simula69 and ObjectPascal gained momentum. It looked like programmers finally found the perfect language. C++ successfully combined the object oriented principles of Simula w…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Viewers will learn about the different types of variables in Java and how to declare them. Decide the type of variable desired: Put the keyword corresponding to the type of variable in front of the variable name: Use the equal sign to assign a v…
Viewers will learn about if statements in Java and their use The if statement: The condition required to create an if statement: Variations of if statements: An example using if statements:

758 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now