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

who call the servlet?

 
Amir Kamran
Ranch Hand
Posts: 48
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello!
I want to use MVC pattern in my app. I use a Servlet as a handler with many jsps, but how the servlet knows which jsp is calling it?
I think one solution is using a hidden field which contains the path of the jsp and pass it to servlet.
Is there any other solution?
 
Bosun Bello
Ranch Hand
Posts: 1511
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Did you try getRequestURI()? It returns the part of the URL that comes after the host and port, but before any parameters. Hidden form fields will also work though.
 
Amir Kamran
Ranch Hand
Posts: 48
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks for early reply!
The method getRequestURI() and also the method getRequestURL() will return the information of current page not of that from which the page is called.
 
Corey McGlone
Ranch Hand
Posts: 3271
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
One technique I use is to put the name of the current page in the session. For example, if the user is at the "Main Menu" page, getting the attribute "currentPage" from the Session will return that string. Then, before I forward to another JSP page, I can simply set that session variable to the name of the page that I'll be forwarding to. This way, I always know where to look to determine where the user is and I don't have to include hidden fields in all of my pages that don't really mean anything. After all, does your JSP really care what the servlet calls it?
I also find that it's usually good practice to store my screen names as constants in some class (possibly the servlet, but I usually make another class to put them in to keep it from getting cluttered) or in a propeties file.
I hope that helps,
Corey
 
Amir Kamran
Ranch Hand
Posts: 48
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello again!
Thanks Cory its a good solution, but i have another one the URI of request sender can be retrieve through a header name Referer.
 
Kat Lee
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
What about storing the url in a cookie?
 
Rishi Singh
Ranch Hand
Posts: 321
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Try using the header Http Referer
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic