• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    JSP使用MVC模式完成删除和修改功能实例详解

    本文实例讲述了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程序设计有所帮助。

    您可能感兴趣的文章:
    • JSP使用Servlet作为控制器实现MVC模式实例详解
    • springMVC如何将controller中数据传递到jsp页面
    • springMVC如何将controller中Model数据传递到jsp页面
    • SpringMVC 向jsp页面传递数据库读取到的值方法
    • 浅谈SpringMVC jsp前台获取参数的方式 EL表达式
    • JSP开发中在spring mvc项目中实现登录账号单浏览器登录
    • JSP中springmvc配置validator的注意事项
    • JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)
    • jsp 实现的简易mvc模式示例
    上一篇:JSP实现添加功能和分页显示实例分析
    下一篇:JSP学习之Java Web中的安全控制实例详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    JSP使用MVC模式完成删除和修改功能实例详解 JSP,使用,MVC,模式,完成,删除,