亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > 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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品视频在线播放| 亚洲视频日韩精品| 91爱视频在线| 26uuu国产精品视频| 日韩av不卡电影| 亚洲日韩欧美视频一区| 国产精品一区二区三区在线播放| 中文.日本.精品| 国产v综合v亚洲欧美久久| 国产一区二区在线免费| 热久久免费视频精品| 97在线视频观看| 中文字幕精品久久| 欧美大奶子在线| 欧美成人黑人xx视频免费观看| 91免费在线视频| 成人综合网网址| 欧美大尺度激情区在线播放| 久久免费视频这里只有精品| 欧美日韩久久久久| 高清一区二区三区四区五区| 亚洲天堂男人天堂| 亚洲片在线观看| 欧美电影电视剧在线观看| 中文字幕国产亚洲2019| 狠狠色狠狠色综合日日小说| 亚洲综合精品伊人久久| 一区二区欧美在线| 久久精品国产久精国产一老狼| 亚洲色图15p| 91精品久久久久久久久久久久久| 欧美日韩加勒比精品一区| 中文字幕亚洲欧美一区二区三区| 精品国产欧美一区二区五十路| 成人中心免费视频| 日韩视频免费大全中文字幕| 久久久www成人免费精品张筱雨| 色小说视频一区| 亚洲香蕉伊综合在人在线视看| 精品福利免费观看| 91精品国产色综合久久不卡98| 亚洲国产中文字幕在线观看| 欧美精品videos性欧美| 国产精品国产福利国产秒拍| 欧美在线视频免费观看| 国产精品视频在线播放| 狠狠色狠狠色综合日日小说| 北条麻妃一区二区三区中文字幕| 欧美大奶子在线| 中文字幕免费精品一区高清| 国产欧美日韩免费| 国产日本欧美视频| 中文字幕一区二区三区电影| 亚洲黄色av网站| 欧美精品手机在线| 欧美综合一区第一页| 欧美精品videosex极品1| 国产情人节一区| 亚洲男人的天堂在线播放| 色综合久久天天综线观看| 欧美国产视频一区二区| 亚洲电影免费观看高清完整版| 久久大大胆人体| 2019最新中文字幕| 久久久久久久97| 亚洲欧美在线一区| 国产精品激情av电影在线观看| 日韩电视剧在线观看免费网站| 北条麻妃99精品青青久久| 国产精品成人一区二区| 国产成人精品电影久久久| 91成人国产在线观看| 国产精品美女免费| 欧美成人手机在线| 欧美日韩激情视频| 欧美亚洲国产日韩2020| 国产日韩精品在线| 亚洲女同精品视频| 国产999精品| 欧洲日本亚洲国产区| 亚洲国产婷婷香蕉久久久久久| 欧美一区亚洲一区| 九色精品美女在线| 日韩精品福利网站| 91在线观看免费网站| 欧美成年人网站| 亚洲国产婷婷香蕉久久久久久| 久久久亚洲国产天美传媒修理工| 色悠悠久久88| 国产在线视频91| 91伊人影院在线播放| 亚洲国产日韩欧美在线动漫| 久久久精品欧美| 日韩毛片在线观看| 亚洲丝袜av一区| 精品视频在线观看日韩| 久久久女人电视剧免费播放下载| 欧美成人在线网站| 亚洲国产精品嫩草影院久久| 日韩av在线不卡| 久久久久久一区二区三区| 国产综合久久久久| 777777777亚洲妇女| 国产精品美女主播| 热99久久精品| www.欧美精品| 欧美日韩国产999| 亚洲影院色在线观看免费| www欧美xxxx| 国产丝袜一区视频在线观看| 91精品国产成人www| 欧美一区二区三区免费视| 伊人久久五月天| 成人免费高清完整版在线观看| 91精品中国老女人| 国产成人精品在线| 欧美亚洲免费电影| 一区二区欧美激情| 国产成人福利网站| 日本精品久久久久久久| 国产精品稀缺呦系列在线| 成人免费福利在线| 国产午夜精品理论片a级探花| 国产成人精品久久二区二区| 国产精品 欧美在线| 国产亚洲成精品久久| 欧美激情综合色| 亚洲性日韩精品一区二区| 另类图片亚洲另类| 九九九热精品免费视频观看网站| 少妇高潮 亚洲精品| 日韩av免费在线| 国产成人精品在线视频| 日韩在线不卡视频| 日韩成人激情在线| 久久91精品国产91久久跳| 亚州av一区二区| 日韩精品中文在线观看| 日韩毛片在线观看| 久久av资源网站| 不卡在线观看电视剧完整版| 国模gogo一区二区大胆私拍| 日韩免费观看在线观看| 色综合久久88| 色偷偷av一区二区三区| 国产精品99久久久久久久久| 精品亚洲一区二区三区在线观看| 久久天天躁狠狠躁老女人| 国产一区二区精品丝袜| 亚洲午夜精品视频| 亚洲一区二区久久久久久久| 亚洲自拍偷拍色片视频| 国产欧美最新羞羞视频在线观看| 成人黄色免费网站在线观看| 国产一区二区三区三区在线观看| 狠狠色狠狠色综合日日小说| 久久久国产精品视频| 精品爽片免费看久久| 亚洲天堂日韩电影| 欧美高清不卡在线| 亚洲精品欧美日韩| 精品国产老师黑色丝袜高跟鞋| 91精品国产91久久久| 在线免费看av不卡|