2011-10-11 52 views
0

我的問題是我有一個login.jsp,一個LoginAuthenticate.java servlet和一個home.jsp page..here我檢查的登錄信息,即,idpassword,如果LoginAuthenticate.java認證用戶,它被重定向到home.jsp網頁,如果它失敗再次重定向到login.jsp頁,現在我想要做的是,如果login.jsp頁由LoginAuthenticate.java的servlet叫比它也必須顯示味精表明登錄失敗,我嘗試用if聲明,但我不知道我是怎麼知道這個login.jsp被該servlet調用的?有沒有一種方法與request對象,我可以比較調用者的servlet名稱?我如何知道jsp是由特定的servlet而不是其他鏈接調用的?

+1

好作爲一個練習,但是真正的應用我強烈建議你要麼考慮標準聲明式安全框架,這是所有的servlet容器,或更復雜的解決方案,如Apache四郎或Spring安全的一部分。 – fvu

回答

1

你不應該直接無論如何要去一個JSP頁面,理想。

在任何情況下。最簡單的方法將是在servlet設置請求參數:

request.setAttribute("i_come_from_da_servlet_yo", "ohai"); 

然後檢查在JSP該屬性的存在。

+0

但是,如果有'response.sendRedirect(「login.jsp」)'的情況,總會有一個新的請求對象被生成? – Asif

+0

@Asif或者(a)不重定向或(b)把它放在會議來代替(在JSP清除它),基本實現了「閃光」的範圍。 –

+0

OK @戴夫..'RequestDispatcher'會更方便易使用我猜相比,通過只是一個redirection..isn't它開啓和關閉會話? – Asif

相關問題