JBuilder2005實戰JSP之登入頁面(2)
來源:互聯網
上載者:User
將使用者列表改為動態
目前建立的login.jsp有一個缺陷,假設在資料庫後台T_USER表中添加其他的使用者時,因為使用者名稱下拉框是靜態代碼,新建立的使用者並不會出現在頁面中,因此有必要將使用者名稱列表改為動態代碼,用資料庫表T_USER的記錄動態產生下拉框的資料。
我們通過UserList.ava類來完成這個工作,在工程中建立UserList.java,其代碼如下:
代碼清單 5 UserList.java
1. package bookstore;
2. import java.sql.*;
3.
4. public class UserList
5. {
6. //擷取HTML下拉框的使用者列表代碼
7. public static String getUserListHTML() {
8. Connection conn = null;
9. StringBuffer sBuf = new StringBuffer();
10. try {
11. conn = DBConnection.getConnection();
12. PreparedStatement pStat = conn.prepareStatement(
13. "select USER_ID,USER_NAME from T_USER");
14. ResultSet rs = pStat.executeQuery();
15. while (rs.next()) {
16. sBuf.append("<option value='" + rs.getString("USER_ID") + "'>" +
17. rs.getString("USER_NAME") + "</option>");
18. }
19. return sBuf.toString();
20. } catch (SQLException ex) {
21. ex.printStackTrace();
22. return "";
23. } finally {
24. try {
25. if (conn != null) {
26. conn.close();
27. conn = null;
28. }
29. } catch (SQLException ex1) {
30. }
31. }
32. }
33. }
UserList.java只提供了一個靜態getUserListHTML()方法,這個方法從後台資料庫的T_USER表中擷取使用者記錄,並產生HTML的select組件的選項代碼,如第16~17行所示。
在建立這個類後,我們引用該類調整login.jsp的代碼,首先在page指令標籤中通過import屬性引用UserList類,然後將select選項中的內容調整為getUserListHTML()方法返回的值,如下圖所示:
圖 7 通過CodeInsight編寫代碼
通過運算式標籤替換原靜態HTML代碼,值得提起的是,在JSP中也可以象在編寫一般的Java類中一樣使用CodeInsight輸入代碼。調整後的login.jsp的代碼如下所示,用粗體表示: