a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > JSP > 正文

JSP使用MVC模式完成刪除和修改功能實例詳解

2024-09-05 00:22:19
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了JSP使用MVC模式完成刪除和修改功能的方法,以實例形式較為詳細的分析了JSP基于MVC模式實現刪除和修改的實現技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了JSP使用MVC模式完成刪除和修改功能的方法。分享給大家供大家參考。具體如下:

目標:

① 進一步理解MVC模式;

② 掌握刪除功能的基本實現過程;

③ 掌握修改功能的基本實現過程。

主要內容:

① 使用MVC完成刪除功能;

② 使用MVC模式完成信息更新功能。

1、如何使用MVC模式完成刪除功能

根據MVC模式的特點,分別考慮MVC的3個部分。

① 首先考慮V部分:

輸入:通常刪除功能是在查詢的基礎上完成的,所以在用戶信息列表界面上可以添加刪除的超鏈。

輸出:提示用戶刪除是否成功,可以采用單獨的界面,也可以在其他頁面中顯示。我們采用第二種方式,在用戶列表界面中顯示提示信息。

② 其次考慮M部分:需要在User.java中添加刪除用戶的方法即可。

③ 最后考慮C部分:獲取用戶要刪除的用戶名,然后調用M部分完成刪除,最后轉向用戶信息列表界面。

下面分別實現。

2、在userlist.jsp文件中添加刪除超鏈和提示信息

1)添加刪除超鏈(紅色部份):

 

 
  1. <c:forEach var="user" items="${users}"
  2. <tr> 
  3. <td> 
  4. ${user.username} 
  5. </td> 
  6. <td> 
  7. ${user.userpass} 
  8. </td> 
  9. <td> 
  10. <a href="deleteUser?username=${user.username}">刪除</a> 
  11. </td> 
  12. </tr> 
  13. </c:forEach> 

注意:刪除的時候需要知道要刪除的用戶的名字(這里名字作為主鍵),所以通過參數傳遞名字。

2)添加提示信息:

復制代碼代碼如下:

${deleteinfo}

3)修改后的代碼如下:

 

 
  1. <%@ page contentType="text/html;charset=gb2312"%> 
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
  3. <font color="red"> ${addinfo} </font> 
  4. <font color="red"> ${deleteinfo} </font> 
  5. <br> 
  6. <c:if test="${pageNo!=1}"
  7. <a href="getAllUser?pageNo=1">第一頁</a> 
  8. <a href="getAllUser?pageNo=${pageNo-1}">上一頁</a> 
  9. </c:if
  10. <c:if test="${pageNo!=pageCounter}"
  11. <a href="getAllUser?pageNo=${pageNo+1}">下一頁</a> 
  12. <a href="getAllUser?pageNo=${pageCounter}">最后一頁</a> 
  13. </c:if
  14. <br> 
  15. <table width="200" border="1" height="56"
  16. <tbody> 
  17. <tr> 
  18. <td> 
  19. 用戶名 
  20. </td> 
  21. <td> 
  22. 口令 
  23. </td> 
  24. <td> 
  25. </td> 
  26. </tr> 
  27. <c:forEach var="user" items="${users}"
  28. <tr> 
  29. <td> 
  30. ${user.username} 
  31. </td> 
  32. <td> 
  33. ${user.userpass} 
  34. </td> 
  35. <td> 
  36. <a href="deleteUser?username=${user.username}">刪除</a> 
  37. </td> 
  38. </tr> 
  39. </c:forEach> 
  40. </tbody> 
  41. </table> 

3、編寫M部分:在User.java中添加方法

在User.java中添加deleteUser方法,參考代碼如下:

 

 
  1. public boolean deleteUser(String username) { 
  2. Connection con = null
  3. Statement stmt = null
  4. boolean b; // 表示刪除成功與否 
  5. try { 
  6. // 指出連接數據庫所需要的驅動程序 
  7. Class.forName("oracle.jdbc.driver.OracleDriver"); 
  8. // 建立與數據庫之間的連接 
  9. con = DriverManager.getConnection( 
  10. "jdbc:oracle:thin:@myserver:1521:mydb""scott"
  11. "tiger"); 
  12. // 編寫查詢數據庫信息的SQL語句 
  13. String sql = "delete from usertable where username='" + username + "'"
  14. // 創建語句對象,用于執行SQL語句 
  15. stmt = con.createStatement(); 
  16. // 執行沒有結果集返回的語句,返回的是影響數據庫表中記錄的個數 
  17. int n = stmt.executeUpdate(sql); 
  18. if (n > 0) 
  19. b = true
  20. else 
  21. b = false
  22. catch (Exception e) { 
  23. b = false
  24. finally { 
  25. // 關閉相關對象 
  26. if (stmt != null
  27. try { 
  28. stmt.close(); 
  29. catch (Exception ee) { 
  30. if (con != null
  31. try { 
  32. con.close(); 
  33. catch (Exception ee) { 
  34. return b; 

注意:紅色部分需要修改成您自己的服務器和數據庫。

4、編寫C部分:添加DeleteUser控制器

DeleteUser.java的代碼如下:

 

 
  1. package servlet; 
  2. import java.io.IOException; 
  3. import java.io.PrintWriter; 
  4. import javabean.User; 
  5. import javax.servlet.RequestDispatcher; 
  6. import javax.servlet.ServletException; 
  7. import javax.servlet.http.HttpServlet; 
  8. import javax.servlet.http.HttpServletRequest; 
  9. import javax.servlet.http.HttpServletResponse; 
  10. public class DeleteUser extends HttpServlet { 
  11. public void doGet(HttpServletRequest request, HttpServletResponse response) 
  12. throws ServletException, IOException { 
  13. //獲取信息 
  14. String username = request.getParameter("username"); 
  15. // 調用JavaBean 
  16. User user = new User(); 
  17. boolean b = user.deleteUser(username); 
  18. // 傳遞刪除成功或失敗的信息 
  19. String info; 
  20. if(b) 
  21. info = "刪除成功!"
  22. else 
  23. info = "刪除失??!"
  24. request.setAttribute("deleteinfo",info); 
  25. // 選擇界面對用戶響應 
  26. RequestDispatcher rd = request.getRequestDispatcher("getAllUser"); 
  27. rd.forward(request,response); 
  28. public void doPost(HttpServletRequest request, HttpServletResponse response) 
  29. throws ServletException, IOException { 
  30. doGet(request,response); 

5、如何使用MVC模式實現修改功能

修改功能本身包括兩個過程:用戶選擇要修改的用戶,然后把該用戶的信息顯示在修改界面上;用戶進行修改,修改之后提交,服務器完成修改功能。

對于第一個功能,采用MVC模式:

V部分:

輸入:在用戶列表界面上添加“修改”超鏈。

輸出:用戶信息修改界面,把查詢到的信息顯示在修改界面上。

M部分:編寫按照用戶名查詢用戶信息的方法。

C部分:獲取要刪除的用戶的名字,調用M部分的查詢方法,得到用戶信息,傳遞到修改界面,使用修改界面對用戶響應。

對于第二部分,采用MVC模式:

V部分

輸入:上面編寫的修改界面。

輸出:用戶信息列表界面

M部分:編寫用戶信息修改的方法。

C部分:獲取用戶輸入的信息,調用M部分完成修改,轉向列表界面對用戶進行響應。

下面分別介紹實現方法。

6、修改用戶信息列表界面

修改后的代碼如下:

 

 
  1. <%@ page contentType="text/html;charset=gb2312"%> 
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
  3. <font color="red"> ${addinfo} </font> 
  4. <font color="red"> ${deleteinfo} </font> 
  5. <font color="red"> ${updateinfo} </font> 
  6. <br> 
  7. <c:if test="${pageNo!=1}"
  8. <a href="getAllUser?pageNo=1">第一頁</a> 
  9. <a href="getAllUser?pageNo=${pageNo-1}">上一頁</a> 
  10. </c:if
  11. <c:if test="${pageNo!=pageCounter}"
  12. <a href="getAllUser?pageNo=${pageNo+1}">下一頁</a> 
  13. <a href="getAllUser?pageNo=${pageCounter}">最后一頁</a> 
  14. </c:if
  15. <br> 
  16. <table width="200" border="1" height="56"
  17. <tbody> 
  18. <tr> 
  19. <td> 
  20. 用戶名 
  21. </td> 
  22. <td> 
  23. 口令 
  24. </td> 
  25. <td> 
  26. </td> 
  27. </tr> 
  28. <c:forEach var="user" items="${users}"
  29. <tr> 
  30. <td> 
  31. ${user.username} 
  32. </td> 
  33. <td> 
  34. ${user.userpass} 
  35. </td> 
  36. <td> 
  37. <a href="findUser?username=${user.username}">修改</a> 
  38. </td> 
  39. <td> 
  40. <a href="deleteUser?username=${user.username}">刪除</a> 
  41. </td> 
  42. </tr> 
  43. </c:forEach> 
  44. </tbody> 
  45. </table> 

7、編寫信息修改界面

參考代碼如下:

 

 
  1. <%@ page contentType="text/html;charset=gb2312"%> 修改用戶<br> 
  2. <form name="form1" method="post" action="updateUser"
  3. 用戶名:${user.username} 
  4. <input type="hidden" name="username" value="${user.username}"><br> 
  5. 口令:<input type="text" name="userpass" value="${user.userpass}"><br> 
  6. <input type="submit" value="修改"><input type="reset" value="重置"
  7. </form> 

8、在User.java中添加查詢信息的方法

 

 
  1. public User findUserByName(String username) { 
  2. Connection con = null
  3. Statement stmt = null
  4. ResultSet rs = null
  5. try { 
  6. // 指出連接數據庫所需要的驅動程序 
  7. Class.forName("oracle.jdbc.driver.OracleDriver"); 
  8. // 建立與數據庫之間的連接 
  9. con = DriverManager.getConnection( 
  10. "jdbc:oracle:thin:@myserver:1521:mydb""scott"
  11. "tiger"); 
  12. // 編寫查詢數據庫信息的SQL語句 
  13. String sql = "select * from usertable where username='" + username + "'"
  14. // 創建語句對象,用于執行SQL語句 
  15. stmt = con.createStatement(); 
  16. // 執行沒有結果集返回的語句,返回的是影響數據庫表中記錄的個數 
  17. rs = stmt.executeQuery(sql); 
  18. if(rs.next()){ 
  19. User user = new User(); 
  20. String userpass = rs.getString(2); 
  21. user.setUsername(username); 
  22. user.setUserpass(userpass); 
  23. return user; 
  24. }  
  25. catch (Exception e) { 
  26. return null
  27. finally { 
  28. // 關閉相關對象 
  29. try
  30. rs.close(); 
  31. }catch(Exception e){} 
  32. if (stmt != null
  33. try { 
  34. stmt.close(); 
  35. catch (Exception ee) { 
  36. if (con != null
  37. try { 
  38. con.close(); 
  39. catch (Exception ee) { 
  40. return null

注意:紅色部分需要修改成您自己的服務器和數據庫。

9、在User.java中添加“修改信息”的方法

 

 
  1. public boolean update() { 
  2. Connection con = null
  3. Statement stmt = null
  4. boolean b; 
  5. try { 
  6. // 指出連接數據庫所需要的驅動程序 
  7. Class.forName("oracle.jdbc.driver.OracleDriver"); 
  8. // 建立與數據庫之間的連接 
  9. con = DriverManager.getConnection( 
  10. "jdbc:oracle:thin:@myserver:1521:mydb""scott"
  11. "tiger"); 
  12. // 編寫更新的sQL語句 
  13. String sql = "update usertable set userpass = '"+userpass+"' where username='" + username + "'"
  14. // 創建語句對象,用于執行SQL語句 
  15. stmt = con.createStatement(); 
  16. // 執行沒有結果集返回的語句,返回的是影響數據庫表中記錄的個數 
  17. int n = stmt.executeUpdate(sql); 
  18. if(n>0) 
  19. b=true
  20. else 
  21. b=false
  22. catch (Exception e) { 
  23. b = false
  24. finally { 
  25. if (stmt != null
  26. try { 
  27. stmt.close(); 
  28. catch (Exception ee) { 
  29. if (con != null
  30. try { 
  31. con.close(); 
  32. catch (Exception ee) { 
  33. return b; 

注意:紅色部分需要修改成您自己的服務器和數據庫。

10、編寫查詢信息的Servlet

參考代碼如下:

 

 
  1. package servlet; 
  2. import java.io.IOException; 
  3. import java.io.PrintWriter; 
  4. import javabean.User; 
  5. import javax.servlet.RequestDispatcher; 
  6. import javax.servlet.ServletException; 
  7. import javax.servlet.http.HttpServlet; 
  8. import javax.servlet.http.HttpServletRequest; 
  9. import javax.servlet.http.HttpServletResponse; 
  10. public class FindUser extends HttpServlet { 
  11. public void doGet(HttpServletRequest request, HttpServletResponse response) 
  12. throws ServletException, IOException { 
  13. doPost(request,response); 
  14. public void doPost(HttpServletRequest request, HttpServletResponse response) 
  15. throws ServletException, IOException { 
  16. // 獲取信息 
  17. String username = request.getParameter("username"); 
  18. //調用Javabean 
  19. User user = new User(); 
  20. user = user.findUserByName(username); 
  21. // 傳遞值 
  22. request.setAttribute("user", user); 
  23. // 選擇界面對用戶進行響應 
  24. RequestDispatcher rd = request.getRequestDispatcher("updateuser.jsp"); 
  25. rd.forward(request, response);  

11、編寫修改信息的Servlet

參考代碼如下:

 

 
  1. package servlet; 
  2. import java.io.IOException; 
  3. import java.io.PrintWriter; 
  4. import javabean.User; 
  5. import javax.servlet.RequestDispatcher; 
  6. import javax.servlet.ServletException; 
  7. import javax.servlet.http.HttpServlet; 
  8. import javax.servlet.http.HttpServletRequest; 
  9. import javax.servlet.http.HttpServletResponse; 
  10. public class UpdateUser extends HttpServlet { 
  11. public void doGet(HttpServletRequest request, HttpServletResponse response) 
  12. throws ServletException, IOException { 
  13. doPost(request,response); 
  14. public void doPost(HttpServletRequest request, HttpServletResponse response) 
  15. throws ServletException, IOException { 
  16. // 獲取信息 
  17. String username = request.getParameter("username"); 
  18. String userpass = request.getParameter("userpass"); 
  19. //調用Javabean 
  20. User user = new User(); 
  21. user.setUsername(username); 
  22. user.setUserpass(userpass); 
  23. boolean b = user.update(); 
  24. // 傳遞值 
  25. String info ; 
  26. if(b) 
  27. info="修改成功!"
  28. else 
  29. info="修改失??!"
  30. // 選擇界面對用戶進行響應 
  31. RequestDispatcher rd = request.getRequestDispatcher("getAllUser"); 
  32. rd.forward(request, response);  

希望本文所述對大家的JSP程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久国产精品无码网站 | 99精品欧美一区二区三区综合在线 | 一区二区三区视频免费在线观看 | 日本欧美中文字幕 | 国产一区av在线 | a在线天堂| 久久综合一区二区三区 | av网站免费 | 伊人电院网 | 99国产精品99久久久久久 | 国产成人综合一区二区三区 | 成人午夜在线 | 成人影院在线 | 色呦呦视频在线观看 | 久热精品视频在线播放 | 三级黄色网址 | 国产裸体bbb视频 | 亚洲综合在线一区二区三区 | 黄色国产视频 | 久久9视频| 国产免费一区二区三区 | 久久国产精品久久精品 | 成人黄色在线观看 | 久久草视频 | 好姑娘影视在线观看高清 | 日韩综合网 | 精品无码久久久久久国产 | 婷婷色中文网 | 午夜精品福利一区二区三区蜜桃 | 日批免费网站 | av在线免费观看网站 | 国产精品一区二区吃奶在线观看 | 国产精品1区2区3区 午夜视频网站 | 成人免费的视频 | 国产精品大全 | 国产精品一二 | 国产目拍亚洲精品99久久精品 | 手机在线观看毛片 | www.国产高清| 亚洲视频一区在线 | 成人影院av|