麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JSP > 正文

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

2024-09-05 00:22:19
字體:
供稿:網(wǎng)友

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

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

目標(biāo):

① 進(jìn)一步理解MVC模式;

② 掌握刪除功能的基本實(shí)現(xiàn)過程;

③ 掌握修改功能的基本實(shí)現(xiàn)過程。

主要內(nèi)容:

① 使用MVC完成刪除功能;

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

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

根據(jù)MVC模式的特點(diǎn),分別考慮MVC的3個(gè)部分。

① 首先考慮V部分:

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

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

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

③ 最后考慮C部分:獲取用戶要?jiǎng)h除的用戶名,然后調(diào)用M部分完成刪除,最后轉(zhuǎn)向用戶信息列表界面。

下面分別實(shí)現(xiàn)。

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> 

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

2)添加提示信息:

復(fù)制代碼代碼如下:

${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. // 指出連接數(shù)據(jù)庫所需要的驅(qū)動(dòng)程序 
  7. Class.forName("oracle.jdbc.driver.OracleDriver"); 
  8. // 建立與數(shù)據(jù)庫之間的連接 
  9. con = DriverManager.getConnection( 
  10. "jdbc:oracle:thin:@myserver:1521:mydb""scott"
  11. "tiger"); 
  12. // 編寫查詢數(shù)據(jù)庫信息的SQL語句 
  13. String sql = "delete from usertable where username='" + username + "'"
  14. // 創(chuàng)建語句對象,用于執(zhí)行SQL語句 
  15. stmt = con.createStatement(); 
  16. // 執(zhí)行沒有結(jié)果集返回的語句,返回的是影響數(shù)據(jù)庫表中記錄的個(gè)數(shù) 
  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. // 關(guān)閉相關(guān)對象 
  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; 

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

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. // 調(diào)用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. // 選擇界面對用戶響應(yīng) 
  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模式實(shí)現(xiàn)修改功能

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

對于第一個(gè)功能,采用MVC模式:

V部分:

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

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

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

C部分:獲取要?jiǎng)h除的用戶的名字,調(diào)用M部分的查詢方法,得到用戶信息,傳遞到修改界面,使用修改界面對用戶響應(yīng)。

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

V部分

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

輸出:用戶信息列表界面

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

C部分:獲取用戶輸入的信息,調(diào)用M部分完成修改,轉(zhuǎn)向列表界面對用戶進(jìn)行響應(yīng)。

下面分別介紹實(shí)現(xiàn)方法。

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. // 指出連接數(shù)據(jù)庫所需要的驅(qū)動(dòng)程序 
  7. Class.forName("oracle.jdbc.driver.OracleDriver"); 
  8. // 建立與數(shù)據(jù)庫之間的連接 
  9. con = DriverManager.getConnection( 
  10. "jdbc:oracle:thin:@myserver:1521:mydb""scott"
  11. "tiger"); 
  12. // 編寫查詢數(shù)據(jù)庫信息的SQL語句 
  13. String sql = "select * from usertable where username='" + username + "'"
  14. // 創(chuàng)建語句對象,用于執(zhí)行SQL語句 
  15. stmt = con.createStatement(); 
  16. // 執(zhí)行沒有結(jié)果集返回的語句,返回的是影響數(shù)據(jù)庫表中記錄的個(gè)數(shù) 
  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. // 關(guān)閉相關(guān)對象 
  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

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

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

 

 
  1. public boolean update() { 
  2. Connection con = null
  3. Statement stmt = null
  4. boolean b; 
  5. try { 
  6. // 指出連接數(shù)據(jù)庫所需要的驅(qū)動(dòng)程序 
  7. Class.forName("oracle.jdbc.driver.OracleDriver"); 
  8. // 建立與數(shù)據(jù)庫之間的連接 
  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. // 創(chuàng)建語句對象,用于執(zhí)行SQL語句 
  15. stmt = con.createStatement(); 
  16. // 執(zhí)行沒有結(jié)果集返回的語句,返回的是影響數(shù)據(jù)庫表中記錄的個(gè)數(shù) 
  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; 

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

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. //調(diào)用Javabean 
  19. User user = new User(); 
  20. user = user.findUserByName(username); 
  21. // 傳遞值 
  22. request.setAttribute("user", user); 
  23. // 選擇界面對用戶進(jìn)行響應(yīng) 
  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. //調(diào)用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. // 選擇界面對用戶進(jìn)行響應(yīng) 
  31. RequestDispatcher rd = request.getRequestDispatcher("getAllUser"); 
  32. rd.forward(request, response);  

希望本文所述對大家的JSP程序設(shè)計(jì)有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品久久久久影院老司 | 国产成年人小视频 | 午夜视频在线免费观看 | 91久久国产 | 国产一区二区免费看 | 亚洲成人免费视频在线 | 国产妇女乱码一区二区三区 | 成人免费看视频 | 成人毛片在线 | jizzjizz中国人少妇中文 | 欧美羞羞视频 | 免费黄色在线观看网站 | 国产韩国精品一区二区三区久久 | 黄色毛片前黄 | 久久在现视频 | 国产精品刺激对白麻豆99 | 中文字幕在线观看1 | jizzyouxxxx| 曰本三级日本三级日本三级 | 成人精品免费看 | 色97在线| 日韩黄色片免费看 | 久久精品国产精品亚洲 | 最新一区二区三区 | 爱操视频 | 福利一区二区三区视频在线观看 | 爱福利视频 | 成人偷拍片视频在线观看 | 国产一精品一av一免费爽爽 | 精品成人国产在线观看男人呻吟 | 媚药按摩痉挛w中文字幕 | 亚洲精品7777xxxx青睐 | 91成人免费视频 | 欧美一级美国一级 | 越南一级黄色片 | 中国a毛片| 久久91精品国产91久久yfo | av在线免费播放 | 黑人一级片视频 | 精品国产一区二区三区在线 | 一区二区三区欧美精品 |