File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
Win a copy of Clojure in Action this week in the Clojure forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Direct Access to Servlet

 
Mohammed Razzack
Greenhorn
Posts: 7
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
I'm new to Servlet world and below is my requirement:

"Some informational sites want users to access pages in a certain order. They want to prohibit
users from jumping directly to a bookmarked page later in the sequence because the
data on the pages may have changed since the user bookmarked the page.

Create two pages. The first page should be a normal HTML page with a link to the second
page (which should be a servlet). If a user accesses the first page and then follows the link
to the second page, it works normally. But, if the user directly types in the address of the
second page (or follows a link from a page with a different name than the first page), they
should get sent back to the first page automatically."

My question is how do we know if a user is directly accessing servlet?

Thanks in Advance.
 
Bear Bibeault
Author and ninkuma
Marshal
Pie
Posts: 64188
83
IntelliJ IDE Java jQuery Mac Mac OS X
  • 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Set a session-scoped variable when the first page is displayed or submitted. Check for it on the second page. if it's not there, someone cheated.
 
Mohammed Razzack
Greenhorn
Posts: 7
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I was trying to see how we could set session variables in just html pages but couldn't find it. I found that we need to use JavaScript to set it. Could you please explain me bit more on your solution. Thanks again.
 
Stefan Evans
Bartender
Posts: 1640
9
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Smells like a homework question to me :-)
Given that the first page is static html, the solution has to be purely in the target servlet.
The servlet has to find out where the request is coming from, and then react accordingly.

I think the solution here would involve looking at the request information.
Specifically the request header "referer"

Take a look at the HttpServletRequest class and the getHeader method.


Based on this information you can take the appropriate action.
 
Mohammed Razzack
Greenhorn
Posts: 7
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Stefan,

Yes it's homework question as I'm newbie. Thanks for resolving it.

Thanks
 
Daniel Val
Ranch Hand
Posts: 44
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Mohammed Razzack wrote:I was trying to see how we could set session variables in just html pages but couldn't find it. I found that we need to use JavaScript to set it. Could you please explain me bit more on your solution. Thanks again.


OK, so you don't set it in the page, but in the servlet, this is a server side operation.

You get the session with the construct

((HttpServletRequest) request).getSession();

and then using getAttribute, setAttribute you can figure out whether some attributes are already in the session, or you can set whatever attribute you need.

So you don't care if somebody goes "directly to the servlet", as you actually control the servlet and what will be rendered or not.
 
I agree. Here's the link: http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic