File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Servlets and the fly likes Direct Access to Servlet Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Servlets
Bookmark "Direct Access to Servlet" Watch "Direct Access to Servlet" New topic
Author

Direct Access to Servlet

Mohammed Razzack
Greenhorn

Joined: Nov 09, 2009
Posts: 7
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

Joined: Jan 10, 2002
Posts: 61769
    
  67

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.


[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
Mohammed Razzack
Greenhorn

Joined: Nov 09, 2009
Posts: 7
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

Joined: Jul 06, 2005
Posts: 1029
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

Joined: Nov 09, 2009
Posts: 7
Hi Stefan,

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

Thanks
Daniel Val
Ranch Hand

Joined: Jan 09, 2012
Posts: 44
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
 
subject: Direct Access to Servlet