2010-04-01 39 views
0

我正在給用戶激活他的帳戶的鏈接。鏈接是http://xyz.in/JSF_WEB_WFE/faces/index.jsp?confirmuser=jona&emailid=valid。我在Beans構造函數中讀取參數,然後做出一些決定,如激活/已激活。它在本地運行良好,但我們在網絡中部署時可以正常工作,並且不會有一段時間。可能是什麼問題。我們可以做些什麼來改善解決方案?JSF中的用戶激活問題提供了一個鏈接給用戶?

public AuthendicationBean() { 
    try { 
     HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest(); 

     if (request.getParameter("confirmuser") != null && request.getParameter("emailid") != null) { 
      int i = AccountManager.activationUser(request.getParameter("confirmuser"), request.getParameter("emailid")); 
      if (i == 1) { 
       activationmessage = "<b>" + request.getParameter("confirmuser") + "&nbsp;is Activated</b>"; 
       activerender = true; 
       FacesContext.getCurrentInstance().addMessage("userForm", new FacesMessage(request.getParameter("confirmuser") + "\t is Activated" + i)); 
      } else if (i == 2) { 
       activationmessage = "<b>" + request.getParameter("confirmuser") + "&nbsp;is Deactivated</b>"; 
       activerender = true; 
       FacesContext.getCurrentInstance().addMessage("userForm", new FacesMessage(request.getParameter("confirmuser") + "\t is Deactivated")); 
      } else { 
       activationmessage = "<b>" + request.getParameter("confirmuser") + "&nbsp is activated</b>"; 
       activerender = true; 
       FacesContext.getCurrentInstance().addMessage("userForm", new FacesMessage(request.getParameter("confirmuser") + "\t is already Deactivated")); 
      } 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return ""; 
} 
+0

如果你給我們一些代碼,一些例外等,我們可以弄明白。 – Bozho 2010-04-01 06:24:33

+0

我用Code編輯了內容。請看看 – Paul 2010-04-01 09:29:34

+0

請再詳細說明它是如何「不起作用」的。怎麼了?不會發生什麼?從開發者的角度來談,而不是從最終用戶的角度來談。例如。什麼代碼行被執行,什麼(意外)不是?你有什麼異常/堆棧跟蹤? (請張貼他們)。 – BalusC 2010-04-01 11:23:55

回答

2

我得到了解決方案。當我將AuthendicationBean放在需求範圍內時,它工作正常。以前它在會話範圍內可能是問題。

+2

我發現很少有東西屬於會話範圍。持有「購物車」的內容的bean,是的,但是頁面支持bean和任何與認證相關的內容都應該是每個請求的,以避免與使用後退按鈕或多個瀏覽器窗口有關的問題,或者使用過時的認證信息。 (然而,在使用請求範圍的支持bean時,跨回發保留bean狀態是有問題的; Apache Tomahawk的'saveState'組件幫助很大。) – Wyzard 2010-04-01 13:23:09