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

首頁 > 編程 > JSP > 正文

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

2020-07-27 21:31:00
字體:
來源:轉載
供稿:網友

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

目標:

① 進一步理解MVC模式;
② 掌握刪除功能的基本實現過程;
③ 掌握修改功能的基本實現過程。

主要內容:

① 使用MVC完成刪除功能;
② 使用MVC模式完成信息更新功能。

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

根據MVC模式的特點,分別考慮MVC的3個部分。
① 首先考慮V部分:

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

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

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

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

下面分別實現。

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

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

<c:forEach var="user" items="${users}"> <tr>  <td>   ${user.username}  </td>  <td>   ${user.userpass}  </td>  <td>   <a href="deleteUser?username=${user.username}">刪除</a>  </td> </tr></c:forEach>

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

2)添加提示信息:

復制代碼 代碼如下:
<font color="red"> ${deleteinfo} </font>

3)修改后的代碼如下:

<%@ page contentType="text/html;charset=gb2312"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><font color="red"> ${addinfo} </font><font color="red"> ${deleteinfo} </font><br><c:if test="${pageNo!=1}"> <a href="getAllUser?pageNo=1">第一頁</a> <a href="getAllUser?pageNo=${pageNo-1}">上一頁</a></c:if><c:if test="${pageNo!=pageCounter}"> <a href="getAllUser?pageNo=${pageNo+1}">下一頁</a> <a href="getAllUser?pageNo=${pageCounter}">最后一頁</a></c:if><br><table width="200" border="1" height="56"> <tbody>  <tr>   <td>    用戶名   </td>   <td>    口令   </td>   <td>   </td>  </tr>  <c:forEach var="user" items="${users}">   <tr>    <td>     ${user.username}    </td>    <td>     ${user.userpass}    </td>    <td>     <a href="deleteUser?username=${user.username}">刪除</a>    </td>   </tr>  </c:forEach> </tbody></table>

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

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

public boolean deleteUser(String username) { Connection con = null; Statement stmt = null; boolean b; // 表示刪除成功與否 try {  // 指出連接數據庫所需要的驅動程序  Class.forName("oracle.jdbc.driver.OracleDriver");  // 建立與數據庫之間的連接  con = DriverManager.getConnection(    "jdbc:oracle:thin:@myserver:1521:mydb", "scott",    "tiger");  // 編寫查詢數據庫信息的SQL語句  String sql = "delete from usertable where username='" + username + "'";  // 創建語句對象,用于執行SQL語句  stmt = con.createStatement();  // 執行沒有結果集返回的語句,返回的是影響數據庫表中記錄的個數  int n = stmt.executeUpdate(sql);  if (n > 0)   b = true;  else   b = false; } catch (Exception e) {  b = false; } finally {  // 關閉相關對象  if (stmt != null)   try {    stmt.close();   } catch (Exception ee) {   }  if (con != null)   try {    con.close();   } catch (Exception ee) {   } } return b;}

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

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

DeleteUser.java的代碼如下:

package servlet;import java.io.IOException;import java.io.PrintWriter;import javabean.User;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class DeleteUser extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException { //獲取信息 String username = request.getParameter("username"); // 調用JavaBean User user = new User(); boolean b = user.deleteUser(username); // 傳遞刪除成功或失敗的信息 String info; if(b)  info = "刪除成功!"; else  info = "刪除失?。?; request.setAttribute("deleteinfo",info); // 選擇界面對用戶響應 RequestDispatcher rd = request.getRequestDispatcher("getAllUser"); rd.forward(request,response);}public void doPost(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException {  doGet(request,response);}}

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

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

V部分:

輸入:在用戶列表界面上添加“修改”超鏈。
輸出:用戶信息修改界面,把查詢到的信息顯示在修改界面上。

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

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

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

V部分

輸入:上面編寫的修改界面。
輸出:用戶信息列表界面

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

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

下面分別介紹實現方法。

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

修改后的代碼如下:

<%@ page contentType="text/html;charset=gb2312"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><font color="red"> ${addinfo} </font><font color="red"> ${deleteinfo} </font><font color="red"> ${updateinfo} </font><br><c:if test="${pageNo!=1}"><a href="getAllUser?pageNo=1">第一頁</a><a href="getAllUser?pageNo=${pageNo-1}">上一頁</a></c:if><c:if test="${pageNo!=pageCounter}"><a href="getAllUser?pageNo=${pageNo+1}">下一頁</a><a href="getAllUser?pageNo=${pageCounter}">最后一頁</a></c:if><br><table width="200" border="1" height="56"><tbody> <tr>  <td>   用戶名  </td>  <td>   口令  </td>  <td>  </td> </tr> <c:forEach var="user" items="${users}">  <tr>   <td>    ${user.username}   </td>   <td>    ${user.userpass}   </td>   <td>    <a href="findUser?username=${user.username}">修改</a>   </td>   <td>    <a href="deleteUser?username=${user.username}">刪除</a>   </td>  </tr> </c:forEach></tbody></table>

7、編寫信息修改界面

參考代碼如下:

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

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

public User findUserByName(String username) {  Connection con = null;  Statement stmt = null;  ResultSet rs = null;  try {   // 指出連接數據庫所需要的驅動程序   Class.forName("oracle.jdbc.driver.OracleDriver");   // 建立與數據庫之間的連接   con = DriverManager.getConnection(     "jdbc:oracle:thin:@myserver:1521:mydb", "scott",     "tiger");   // 編寫查詢數據庫信息的SQL語句   String sql = "select * from usertable where username='" + username + "'";   // 創建語句對象,用于執行SQL語句   stmt = con.createStatement();   // 執行沒有結果集返回的語句,返回的是影響數據庫表中記錄的個數   rs = stmt.executeQuery(sql);   if(rs.next()){    User user = new User();    String userpass = rs.getString(2);    user.setUsername(username);    user.setUserpass(userpass);    return user;   }     } catch (Exception e) {   return null;  } finally {   // 關閉相關對象   try{    rs.close();   }catch(Exception e){}   if (stmt != null)    try {     stmt.close();    } catch (Exception ee) {    }   if (con != null)    try {     con.close();    } catch (Exception ee) {    }  }  return null;}

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

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

public boolean update() { Connection con = null; Statement stmt = null; boolean b; try {  // 指出連接數據庫所需要的驅動程序  Class.forName("oracle.jdbc.driver.OracleDriver");  // 建立與數據庫之間的連接  con = DriverManager.getConnection(    "jdbc:oracle:thin:@myserver:1521:mydb", "scott",    "tiger");  // 編寫更新的sQL語句  String sql = "update usertable set userpass = '"+userpass+"' where username='" + username + "'";  // 創建語句對象,用于執行SQL語句  stmt = con.createStatement();  // 執行沒有結果集返回的語句,返回的是影響數據庫表中記錄的個數  int n = stmt.executeUpdate(sql);  if(n>0)   b=true;  else   b=false; } catch (Exception e) {  b = false; } finally {  if (stmt != null)   try {    stmt.close();   } catch (Exception ee) {   }  if (con != null)   try {    con.close();   } catch (Exception ee) {   } } return b;}

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

10、編寫查詢信息的Servlet

參考代碼如下:

package servlet;import java.io.IOException;import java.io.PrintWriter;import javabean.User;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class FindUser extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException { doPost(request,response);}public void doPost(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException { // 獲取信息 String username = request.getParameter("username"); //調用Javabean User user = new User(); user = user.findUserByName(username); // 傳遞值 request.setAttribute("user", user); // 選擇界面對用戶進行響應 RequestDispatcher rd = request.getRequestDispatcher("updateuser.jsp"); rd.forward(request, response);    }}

11、編寫修改信息的Servlet

參考代碼如下:

package servlet;import java.io.IOException;import java.io.PrintWriter;import javabean.User;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class UpdateUser extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException { doPost(request,response);}public void doPost(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException { // 獲取信息 String username = request.getParameter("username"); String userpass = request.getParameter("userpass"); //調用Javabean User user = new User(); user.setUsername(username); user.setUserpass(userpass); boolean b = user.update(); // 傳遞值 String info ; if(b)  info="修改成功!"; else  info="修改失敗!"; // 選擇界面對用戶進行響應 RequestDispatcher rd = request.getRequestDispatcher("getAllUser"); rd.forward(request, response); }}

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91免费看视频.| 欧美一级在线亚洲天堂| 精品女同一区二区三区在线播放| 国产精品久久久久久久app| 免费av在线一区| 国产成人精品久久二区二区91| 国产精品夜色7777狼人| 国产免费一区二区三区在线能观看| 日韩免费观看网站| 国产成人精品av在线| 国产精品亚洲аv天堂网| 日韩中文第一页| 亚洲日韩欧美视频| 精品国产一区二区三区久久久狼| 国产精品视频在线播放| 日韩电影中文字幕| 久久91精品国产91久久久| 激情成人中文字幕| 亚洲男人天堂久| 亚洲精品成人免费| 国产精品免费视频xxxx| 91嫩草在线视频| 日韩av在线免播放器| 亚洲精品久久久一区二区三区| 亚洲激情在线观看视频免费| 国产极品精品在线观看| 欧美日韩亚洲成人| 国产精品成人va在线观看| 中国china体内裑精亚洲片| 亚洲欧洲在线视频| 国产在线精品一区免费香蕉| 波霸ol色综合久久| 久久精品国产亚洲| 成人福利网站在线观看11| 国产一区二区三区精品久久久| 亚洲女人被黑人巨大进入al| 日韩高清a**址| 国产亚洲视频中文字幕视频| 午夜免费久久久久| 精品国产自在精品国产浪潮| 精品中文字幕在线观看| 国产精品色午夜在线观看| 亚洲第一福利在线观看| 日韩美女写真福利在线观看| 国产精品视频999| 日韩电影免费观看在线观看| 久久综合免费视频影院| 亚洲91av视频| 亚洲精品成人av| 亚洲欧美日韩爽爽影院| 国产精品自拍网| 欧美在线一级va免费观看| 中文字幕精品在线| 亚洲国产精品999| xvideos亚洲| 欧美成年人视频网站欧美| 国产精品久久久久久久久久小说| 久久精品99久久久久久久久| 草民午夜欧美限制a级福利片| 中文字幕日韩精品在线| 精品一区精品二区| 久久69精品久久久久久久电影好| 久久久久久久电影一区| 亚洲高清久久网| 国产精品欧美一区二区三区奶水| 九九综合九九综合| 精品无人国产偷自产在线| 成人在线视频网| 国产精品中文字幕久久久| 欧美三级xxx| 97热在线精品视频在线观看| 亚洲白虎美女被爆操| 精品国产91久久久久久| 欧美网站在线观看| 日韩欧中文字幕| 91大神福利视频在线| 在线观看国产精品日韩av| 欧美性做爰毛片| 欧美色视频日本高清在线观看| 久久精品国产欧美亚洲人人爽| 川上优av一区二区线观看| 欧美精品国产精品日韩精品| 欧美成人小视频| 欧美激情综合亚洲一二区| 黄色精品在线看| 高清欧美性猛交| 91精品国产综合久久香蕉922| 久久久久久久久久久91| 欧美精品中文字幕一区| 欧美激情影音先锋| 精品性高朝久久久久久久| 97成人在线视频| 这里只有精品视频| 97精品国产97久久久久久免费| 日韩av免费观影| 在线视频免费一区二区| 91色中文字幕| 国产欧美日韩亚洲精品| 欧美国产日韩一区| 91av在线免费观看视频| 在线精品高清中文字幕| 欧美激情高清视频| 国产成人精品视| 国产精品爽黄69| 欧美另类极品videosbest最新版本| 91精品视频免费观看| 中文字幕免费精品一区| 亚洲japanese制服美女| 久久久亚洲欧洲日产国码aⅴ| 亚洲黄色在线观看| 亚洲另类图片色| 亚洲精品成人网| 国产97在线视频| 欧美大肥婆大肥bbbbb| 中文字幕一区二区三区电影| 最近2019年中文视频免费在线观看| 亚洲欧美日韩中文在线制服| 欧美日韩国产成人在线观看| 一本大道香蕉久在线播放29| 中文字幕日韩欧美在线视频| 日韩欧美一区二区在线| 久久精品视频中文字幕| 国内精品模特av私拍在线观看| 92看片淫黄大片看国产片| 亚洲大胆美女视频| 欧美多人爱爱视频网站| 国产精品r级在线| 亚洲欧美日韩天堂一区二区| 色午夜这里只有精品| 国内外成人免费激情在线视频网站| 日韩在线免费视频观看| 欧美成人激情图片网| 欧美亚洲成人xxx| 亚洲最大的av网站| 亚洲国产精品小视频| 一区二区三区www| 91精品国产91久久| 萌白酱国产一区二区| 中文字幕在线亚洲| 亚洲精品中文字| 日本精品免费观看| 欧美一级bbbbb性bbbb喷潮片| 高清一区二区三区四区五区| 久久香蕉国产线看观看网| 亚洲欧洲黄色网| 欧美日韩加勒比精品一区| 怡红院精品视频| 欧美激情奇米色| 日韩电影中文字幕在线观看| 国产91成人video| 精品少妇一区二区30p| 欧美一区第一页| 日本成人激情视频| 久热在线中文字幕色999舞| 日韩免费av在线| 久久久久久久久久亚洲| 日产精品99久久久久久| 欧美电影《睫毛膏》| 亚洲一区二区三区777| 亚洲一区二区三区xxx视频| 国产精品劲爆视频| 91网站免费观看| 精品国产一区二区三区久久| 九色成人免费视频|