2011-11-07 58 views
-1

會話屬性,我已經把我的屬性是:我怎樣才能從其它Java應用程序中所需類型

 HttpSession session = request.getSession(true); 
    session.setAttribute("SessionUser", userName); 

我不知道如何解析特定屬性爲一個字符串。

String query = "SELECT title, first, last, email FROM member WHERE email="+**??**; 
+1

答案下面是很好的 - 但請注意這一點。直接將這種數據放入SQL查詢可能會導致SQL注入攻擊。使用ORM框架,或使用PreparedStatement,而不是直接將字符串值插入到JDBC查詢中。 –

回答

2

只投:

String username = (String) session.getAttribute("SessionUser"); 
+0

我懷疑他想要這樣做,但是要獲取User bean/object,因爲他想在查詢中使用用戶的'email'。 – Saket

+0

他輸入的變量稱爲「userName」,我假設它是一個字符串。有時候email =用戶名 – Bozho

0

如果用戶名屬性是一個String對象,那麼你就可以

String userName= (String)session.getAttribute("SessionUser"); 
String query = "SELECT title, first, last, email FROM member WHERE email="+ userName; 

調用它或它的豆?然後;

UserBean user = (UserBean)session.getAttribute("SessionUser"); 
String query = "SELECT title, first, last, email FROM member WHERE email="+ user.getUserName(); 
1

你似乎只增加了用戶的到會話屬性。

嘗試將整個用戶對象(無論是在你的情況下,域對象),如下所示:

session.setAttribute("SessionUser", userObj); 

然後利用獲取的對象:

UserObj userObj = (UserObj) session.getAttribute("SessionUser"); 

,然後在查詢中使用它,像這樣: (假設你在UserObj中有一個getEmail())

String userEmail = userObj.getEmail(); 
String query = "SELECT title, first, last, email FROM member WHERE email="+ userEmail;