2012-08-31 55 views
0
class A 
if(userAuthenticated) 
    ArrayList accounts = getAccountForUser(customerId); 
UserInfo userinfo = new UserInfo(); 
userinfo.getUserInfo(accounts); 
} 

============== 

class UserInfo 
{ 
public ArrayList<String> getUserInfo(ArrayList list) { 
ArrayList useraccounts = list; 
return useraccounts; 
} 
} 

=============== 

現在C類裏面我將有一個字符串,我需要檢查,如果當時該字符串值存在做別的事情做soemthingJava的:我需要做的方法不同的表現爲不同的請求

的問題是因爲這是一個Web應用程序,我不能在應用程序中使用實例varaibe。

class C 
{ 

public String makeDBCALL(String account) 
{ 

Here i need to get that ArrayList of UserInfo and check if taht list.contains(account)) 
could anybody please tell me how can do this . 
} 
} 
+0

必須說您的問題有點含糊。有時候明確你所擁有的東西是有用的,更好地瞭解如何從中獲得解決方案。無論如何謝謝你試圖隔離問題:) – helios

回答

0

語境

你需要上下文。

需要爲該上下文提供Servlet類。

DB或內存

你可以有一個數據庫(數據源)的引用和查詢每次DB,或在內存中的東西(即列表中的例子)。

任何方式,如果C是一個servlet類,知道它是在servlet環境內,你可以要求應用程序上下文。如果它是一個商業類,更不可知的東西,那麼最好通過參數或屬性接收它所需的上下文。

設置上下文

如果你使用Spring的配置(春季IOC)你可以設置哪些課程需要寫正確的XML。

如果您不這樣做,那麼在某個地方您需要查找數據庫連接,或初始化該列表併爲其他類提供參考。

最後一個具體的解決方案

編寫產生在初始化(onContextCreated)這方面需要從應用程序上下文掛起了一個環境監聽:

class MyListener implements ServletContextListener 
{ 
    contextInitialized(ServletContextEvent event) { 
     // Create theObjWEhatYouNeed 
     event.getServletContext().setAttribute("whatINeed", theObjWhatYouNeed); 
    } 
} 

配置你的web.xml使用MyListener

<listener> 
    <listener-class>MyListener</listener-class> 
</listener> 

然後從您的servlet類中使用它(可以有很多我相同servlet類的物質,請記住)

doGet(...) { 
    MyObj myObj = (MyObj) request.getSession().getServletContext().getAttribute("whatINeed"); 
} 
+0

這是一個簡單的java類,沒有J2EE。 – Pawan

+0

糟糕...那麼,什麼意思是「這是一個WebApplication」? – helios

+0

Mine是一個web應用程序,但它們本身就是簡單的java類。 – Pawan

相關問題