2010-04-12 100 views
0

我有一個過濾器,當任何客戶端在我的web應用程序中請求一個JSF頁面時,我得到頁面未找到錯誤。我不知道如何解決這個問題。如何在jsf中應用過濾器

這裏是我的過濾器代碼:

HttpServletRequest req = (HttpServletRequest) request; 
HttpServletResponse res = (HttpServletResponse) response; 
HttpSession ses = req.getSession(true); 
String pageRequested = req.getRequestURL().toString(); 
if (ses.getAttribute("userDetails") != null) { 
    fc.doFilter(request,response);  
} else { 
    RequestDispatcher dis = request.getRequestDispatcher(LOGIN_PAGE); 
    dis.forward(request,response); 
} 

我在web.xml部署描述符做了所有必要的設置。

+1

是什麼LOGIN_PAGE' – Bozho 2010-04-12 11:09:05

+0

公共靜態LOGIN_PAGE的'值=「面臨/ login.jsp的」 – johnbritto 2010-04-13 04:29:56

回答

0

404只是表示找不到請求的資源。至此,這可能有兩個原因:

  1. 該URL無效(即LOGIN_PAGE無效)。
  2. 該資源不存在於您認爲它的地方。

爲了進一步明確病因中,我們需要這方面的問題就知道兩兩件事:

  1. 什麼是當前請求的絕對URL?打印request.getRequestURL()
  2. 什麼是可以在webbrowser中獨立打開登錄頁面的絕對URL?

然後,您應該能夠從此信息中提取正確的LOGIN_PAGE

+0

公共靜態LOGIN_PAGE =「面臨/ login.jsp的」 這裏這個LOGIN_PAGE vaue這是唯一正確的,但爲什麼這404錯誤發生 – johnbritto 2010-04-13 04:33:03

+0

由於相對URL不正確。請再次提及當前請求的絕對URL和登錄頁面本身的絕對URL。 – BalusC 2010-04-13 11:13:17