學習javaWeb,首先要學習基礎的jsp,servlet,弄通了機制然后就得心應手了。我們來實現一個簡單的實例來學習。
我們的任務有:1.數據庫及表創建
上節實現了用戶登錄,本節來實現用戶列表顯示
四、用戶列表顯示
要實現用戶列表顯示功能,我們需要完成以下幾個任務:
1.顯示頁面
一個簡單的顯示界面如下圖所示:
(說明:用戶點擊用戶名會跳到個人詳細信息頁面;點擊刪除會刪除一條數據;
點擊修改會跳到修改信息頁面;點擊全選按鈕會全部選擇;反選會反選數據;
如果選中了幾條數據還可以點擊批量刪除來刪除多條數據)
userlist.jsp中的部分代碼如下:
1 <%ArrayList<UserVo> list = (ArrayList<UserVo>)(request.getAttribute("list")); %> 2 <html> 3 <head> 4 <style type = "text/css"> 5 td{ 6 7 width:60px; 8 } 9 </style> 10 <script type="text/javascript"> 11 12 function chickAll(){ 13 // 全選方法 14 var chickobj = document.getElementsByName("num"); 15 for(var i = 0 ; i<chickobj.length ; i++){ 16 17 chickobj[i].checked = "checked"; 18 } 19 20 } 21 function Nochick(){ 22 // 反選方法 23 var chickobj = document.getElementsByName("num"); 24 for(var i = 0 ; i<chickobj.length ; i++){ 25 26 chickobj[i].checked = !chickobj[i].checked ; 27 } 28 29 } 30 </script> 31 </head> 32 33 <body> 34 <div id = "main"> 35 <form name="form1" action ="servlet/ServletDeleteUserList" method = "post"> 36 <table border ="1" align = "center" style="border-collapse:collapse;"> 37 <tr align="center"> 38 <td colspan="7"> 39 用戶信息列表 40 </td> 41 </tr> 42 <tr align="center"> 43 <td></td> 44 <td>用戶名</td> 45 <td>密碼</td> 46 <td>省份</td> 47 <td>城市</td> 48 <td colspan="2">操作</td> 49 </tr> 50 51 <%for(int i = 0 ; i<list.size();i++) { 52 53 UserVo user = list.get(i);%> 54 <tr align="center" > 55 <td><input type = "checkbox" value ='<%=user.getUserId() %>' name="num"/></td> 56 <td><a href="servlet/ServletViewUser?userId=<%=user.getUserId() %>"><%=user.getUserName()%></a></td> 57 <td><%=user.getUserPassword() %></td> 58 <td><%=user.getUserProvince() %></td> 59 <td><%=user.getUserCity() %></td> 60 <td><a href="servlet/ServletUserDelete?userId=<%=user.getUserId() %>">刪除</a></td> 61 <td><a href="servlet/ServletToUserUpdate?userId=<%=user.getUserId() %>">修改</a></td> 62 </tr> 63 <% 64 } 65 %> 66 </table> 67 <table align = "center" > 68 <tr> 69 <td><input type="button" value ="全選" name="checkall" id = "checkall" onclick="chickAll()"/></td> 70 <td><input type ="button" value ="反選" name="nocheck" id= "nocheck" onclick="Nochick()"/></td> 71 <td><input type ="submit" value ="批量刪除" /></td> 72 </tr> 73 </table> 74 </form> 75 </div> 76 </body> 77 </html>
2.顯示Servlet
顯示用戶數據的servlet沒有單另寫出,寫在了ServletUserLogin.java的登錄成功語句中了,相關代碼為:
1 …… 2 ArrayList<UserVo> list = userDao.selectNotDeleteList(); 3 request.setAttribute("list", list); 4 request.getRequestDispatcher("/userlist.jsp").forward(request, 5 response); 6 ……
當然單另寫出也是不錯的選擇。
3.查詢方法
在數據操作類中需要有一個查詢所有正常用戶的方法selectNotDeleteList(),代碼如下:
1 public ArrayList<UserVo> selectNotDeleteList() { 2 // 查詢所有正常用戶 3 Dbmanage dbmanage = new Dbmanage(); 4 Connection conn = null; 5 Statement sta = null; 6 ResultSet rs = null; 7 UserVo user = null; 8 ArrayList<UserVo> list = new ArrayList<UserVo>(); 9 try { 10 conn = dbmanage.initDB(); 11 sta = conn.createStatement(); 12 13 String sql = "SELECT * FROM userTable WHERE user_display = 1"; 14 15 rs = sta.executeQuery(sql); 16 while (rs.next()) { 17 18 user = new UserVo(); 19 20 user.setUserId(rs.getInt("user_id")); 21 user.setUserName(rs.getString("user_name")); 22 user.setUserPassword(rs.getString("user_password")); 23 user.setUserProvince(rs.getString("user_province")); 24 user.setUserCity(rs.getString("user_city")); 25 user.setUserSex(rs.getString("user_sex")); 26 user.setUserHobby(rs.getString("user_hobby")); 27 user.setUserDescribe(rs.getString("user_describe")); 28 29 list.add(user); 30 } 31 32 } catch (SQLException e) { 33 34 e.printStackTrace(); 35 } finally { 36 // 執行完關閉數據庫 37 dbmanage.closeDB(rs, sta, conn); 38 } 39 return list; 40 }
從數據庫中檢索到了符合條件的數據,然后把它們放到實例化user對象中,然后在放到鏈表中返回,然后發送到前台遍歷。
鏈接導航 1.數據庫及表創建