• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Direct Access to Servlet

 
Greenhorn
Posts: 7
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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.
 
Sheriff
Posts: 67746
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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.
 
Bartender
Posts: 1845
10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Stefan,

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

Thanks
 
Ranch Hand
Posts: 44
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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.
 
You had your fun. Now it's time to go to jail. Thanks for your help tiny ad.
a bit of art, as a gift, the permaculture playing cards
https://gardener-gift.com
reply
    Bookmark Topic Watch Topic
  • New Topic