This week's book giveaway is in the Java in General forum.
We're giving away four copies of Think Java: How to Think Like a Computer Scientist and have Allen B. Downey & Chris Mayfield on-line!
See this thread for details.
Win a copy of Think Java: How to Think Like a Computer Scientist this week in the Java in General forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Forward between Web Apps - How To?

 
Rajesh Manohar
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Consider there are two servlets, Servlet1 under WebApp1 and Servlet2 under WebApp2 deployed in two different JVMs.
I need to forward the request from Servlet1 to Servlet2, How to implement this in code?

Note: I need the request and response objects - So response.redirect() doesnt solve my problem.
 
David O'Meara
Rancher
Posts: 13459
Android Eclipse IDE Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
This is dangerous and I've never seen it done correctly. It's possible, but you attempt it at your own risk.

You may need to change the configuration depending on your container. Cross-context communication is typically disabled by default as it could pose a security risk if one application is malicious.

You can reach from context to another using getServletContext().getContext(contextName), you can then get the request dispatcher and forward as normal. Whether or not it works is a matter of chance

One problem you may encounter is that crossing from one context to another may re-enter through the thread pool, so if you are doing an include you have no control over the ordering of the two included resources! There's more to this but it is too vendor specific to warrant discussion. As I said, dangerous and hard to get right.
 
Craig Jackson
Ranch Hand
Posts: 405
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I have not done this, so I am not sure this will work.

But couldn't you use the method java.servlet.ServletContext.getContext(String uripath) to return the ServletContext of WebApp2, then use the ServletContext2 and wrap the path of Servlet2 in a RequestDispatcher, and then forward the current request and Response objects to Servlet2.





I guess David, beat me to the response.
[ September 22, 2005: Message edited by: Craig Jackson ]
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic