After Filter redirects to login.jsp, proper servlet doesnt get called

Posted by gnomeguru on Stack Overflow See other posts from Stack Overflow or by gnomeguru
Published on 2010-05-01T19:26:49Z Indexed on 2010/05/01 23:37 UTC
Read the original article Hit count: 499

Filed under:
|
|
|
|

My simple project structure is shown in this link. I am using Eclipse and Tomcat 6.

There is login.jsp which submits its form to login_servlet. The login_servlet sets a session variable and then redirects to home.jsp. The home.jsp file has links to the 4 JSP files under a directory called /sam. In web.xml I have given the url-pattern as /sam/* for the LogFiler filter.

The LogFilter just reads the session variable and does doChain(request,resposne) if valid, else it redirects to /login.jsp.

RequestDispatcher rd = request.getRequestDispatcher("/login.jsp");
rd.forward(request,response);

Basically I don't want anyone to access files inside /sam directory directly. Now let's say, I try to directly access a file inside /sam directory, the filter kicks in and the redirection to login.jsp works and even the broswers contents are that of login.jsp, but the url in the browser doesn't change. When I enter details and press submit, instead of sending the data to login_servlet, it sends it to sam/login_servlet and then tomcat tells me there is no such servlet here! Obviously there isn't. My doubt is why is it sending it so sam/login_servlet instead of /login_servlet which is usually what it does when I start running the login.jsp on my own.

One more thing, is there a way I can apply the servlet to ONLY .jsp files inside /sam diectory? I tried giving the url-pattern like /sam/*.jsp, but Tomcat was refusing to accept that url-pattern.

© Stack Overflow or respective owner

Related posts about java

Related posts about servlet-filter