JavaWeb案例——用户信息管理系统

文章目录

  • 1. 需求分析
  • 2. 概要设计
    • 2.1 技术选型
    • 2.2 数据库设计
    • 2.3 分页展示用户功能设计
    • 2.4 添加用户功能设计
    • 2.5 删除用户功能设计
    • 2.6 删除选中用户功能设计
    • 2.7 修改用户功能设计
    • 2.8 查询用户功能设计
  • 3. 开发阶段
    • 3.1 环境搭建
    • 3.2 前端代码
    • 3.3 后端代码

1. 需求分析

  1. 完成一个用户信息管理系统(基于 BS 架构),功能如下:

    • 分页展示用户信息
    • 添加用户信息
    • 删除用户信息(可以删除选中用户)
    • 修改用户信息(包括用户数据的回显)
    • 查询用户信息(可以输入条件,模糊查询)
  2. 效果图如下:

JavaWeb案例——用户信息管理系统_第1张图片

JavaWeb案例——用户信息管理系统_第2张图片

JavaWeb案例——用户信息管理系统_第3张图片

JavaWeb案例——用户信息管理系统_第4张图片

2. 概要设计

2.1 技术选型

  • Tomcat 服务器
  • Servlet
  • JSP
  • Bootstrap
  • Mysql 数据库
  • Spring JDBC
  • Druid 连接池
  • BeanUtils

2.2 数据库设计

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `gender` varchar(5) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `address` varchar(32) DEFAULT NULL,
  `qq` varchar(20) DEFAULT NULL,
  `email` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2.3 分页展示用户功能设计

JavaWeb案例——用户信息管理系统_第5张图片

JavaWeb案例——用户信息管理系统_第6张图片

2.4 添加用户功能设计

JavaWeb案例——用户信息管理系统_第7张图片

2.5 删除用户功能设计

JavaWeb案例——用户信息管理系统_第8张图片

2.6 删除选中用户功能设计

JavaWeb案例——用户信息管理系统_第9张图片

2.7 修改用户功能设计

JavaWeb案例——用户信息管理系统_第10张图片

2.8 查询用户功能设计

JavaWeb案例——用户信息管理系统_第11张图片

3. 开发阶段

3.1 环境搭建

  1. 创建数据库环境

    1. 打开 Navicat,新建一个数据库 day17
    2. 创建 user 表(表的结构概要设计中已给出)
  2. 创建项目

    打开 IDEA,创建一个 Java EE 项目,Java EE version 为 Java EE 7,勾选 Web Application,不勾选 Create web.xml,项目名称为 day17_2

  3. 导入需要的 jar 包

    导入需要的 jar 包到 web/WEB-INF/lib 中,右键 Add as Library

    • commons-beanutils-1.8.3.jar
    • jstl-impl.jar
    • commons-logging-1.1.1.jar
    • spring-core-4.2.4.RELEASE.jar
    • spring-beans-4.2.4.RELEASE.jar
    • javax.servlet.jsp.jstl.jar
    • druid-1.0.9.jar
    • spring-jdbc-4.2.4.RELEASE.jar
    • mysql-connector-java-5.1.18-bin.jar
    • spring-tx-4.2.4.RELEASE.jar
  4. 创建配置文件

    在 src 下创建 Druid 配置文件 druid.properties

    driverClassName=com.mysql.jdbc.Driver
    url=jdbc:mysql://127.0.0.1:3306/day17
    username=root
    password=123456
    initialSize=5
    maxActive=10
    maxWait=3000
    
    
  5. 修改 Tomcat 配置

    1. 热部署:将 On ‘Update’ action 修改为 Redeploy 和 On frame deactivation 修改为 Update classes and resourses
    2. 修改端口号:将 HTTP Port 修改为 80
    3. 修改虚拟目录:将 Application context 修改为 /day17_2

3.2 前端代码

  1. 将 Bootstrap 相关的 css,fonts,js 三个文件夹复制到 web 目录下

  2. 首页 index.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    
    
      
      
      
      首页
    
      
      
      
      
      
      
      
    
    
    
    
    
    
    
  3. 用户信息列表页面 list.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
    
    
    
        
        
        
        
        
        
        
        用户信息管理系统
    
        
        
        
        
        
        
        
        
    
    
    
    <%--标题--%>

    用户信息列表

    <%--查询用户信息--%> <%--增加和删除用户信息按钮--%> <%--用户信息表单--%>
    编号 姓名 性别 年龄 籍贯 QQ 邮箱 操作
    ${s.count} ${user.name} ${user.gender} ${user.age} ${user.address} ${user.qq} ${user.email} 修改  删除
    <%--分页--%>
  4. 添加用户页面 add.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    
    
    
    
        
        
        
        
        
        
        
        添加用户
    
        
        
        
        
        
        
        
    
    
    

    添加用户

  5. 修改用户页面 update.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
    
    
    
        
        
        
        
        修改用户
    
        
        
        
    
    
    
    
    

    修改用户

    <%--隐藏域提交 id--%>

3.3 后端代码

  1. 在 src 中创建 com.zt 包,在其中创建以下包:

    • utils
    • domain
    • dao
      • impl
    • service
      • impl
    • web
      • servlet
  2. utils 包

    • JDBCUtils

      package com.zt.utils;
      
      import com.alibaba.druid.pool.DruidDataSourceFactory;
      
      import javax.sql.DataSource;
      import java.io.IOException;
      import java.io.InputStream;
      import java.sql.Connection;
      import java.sql.ResultSet;
      import java.sql.SQLException;
      import java.sql.Statement;
      import java.util.Properties;
      
      public class JDBCUtils {
      
          // 1.定义静态变量 dataSource
          private static DataSource dataSource;
      
          static {
              try {
                  // 2.加载配置文件
                  Properties properties = new Properties();
                  InputStream resourceAsStream = JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties");
                  properties.load(resourceAsStream);
                  // 3.创建数据库连接池对象,并赋值给 dataSource
                  dataSource = DruidDataSourceFactory.createDataSource(properties);
              } catch (IOException e) {
                  e.printStackTrace();
              } catch (Exception e) {
                  e.printStackTrace();
              }
          }
      
          /**
           * 获取连接池方法
           */
          public static DataSource getDataSource() {
              return dataSource;
          }
      
          /**
           * 通过数据库连接池获取连接对象
           */
          public static Connection getConnection() throws SQLException {
              return dataSource.getConnection();
          }
      
          /**
           * 释放资源
           */
          public static void close(ResultSet resultSet, Statement statement, Connection connection) {
              if (resultSet != null) {
                  try {
                      resultSet.close();
                  } catch (SQLException e) {
                      e.printStackTrace();
                  }
              }
              if (statement != null) {
                  try {
                      statement.close();
                  } catch (SQLException e) {
                      e.printStackTrace();
                  }
              }
              if (connection != null) {
                  try {
                      connection.close();
                  } catch (SQLException e) {
                      e.printStackTrace();
                  }
              }
          }
      
          public static void close(Statement statement, Connection connection) {
              close(null, statement, connection);
          }
      
      
      }
      
      
  3. domain 包

    • User

      package com.zt.domain;
      
      /**
       * 用户对象
       */
      public class User {
          private int id;
          private String name;
          private String gender;
          private int age;
          private String address;
          private String qq;
          private String email;
      
          public int getId() {
              return id;
          }
      
          public void setId(int id) {
              this.id = id;
          }
      
          public String getName() {
              return name;
          }
      
          public void setName(String name) {
              this.name = name;
          }
      
          public String getGender() {
              return gender;
          }
      
          public void setGender(String gender) {
              this.gender = gender;
          }
      
          public int getAge() {
              return age;
          }
      
          public void setAge(int age) {
              this.age = age;
          }
      
          public String getAddress() {
              return address;
          }
      
          public void setAddress(String address) {
              this.address = address;
          }
      
          public String getQq() {
              return qq;
          }
      
          public void setQq(String qq) {
              this.qq = qq;
          }
      
          public String getEmail() {
              return email;
          }
      
          public void setEmail(String email) {
              this.email = email;
          }
      
          @Override
          public String toString() {
              return "User{" +
                      "id=" + id +
                      ", name='" + name + '\'' +
                      ", gender='" + gender + '\'' +
                      ", age=" + age +
                      ", address='" + address + '\'' +
                      ", qq='" + qq + '\'' +
                      ", email='" + email + '\'' +
                      '}';
          }
      
      
      }
      
      
    • PageBean

      package com.zt.domain;
      
      import java.util.List;
      
      /**
       * 分页对象
       */
      public class PageBean<T> {
          private int totalCount; // 总记录数
          private int totalPage; // 总页码数
          private int currentPage; // 当前页码
          private int rows; // 每页显示的条数
          private List<T> list; // 每页的数据
      
          public int getTotalCount() {
              return totalCount;
          }
      
          public void setTotalCount(int totalCount) {
              this.totalCount = totalCount;
          }
      
          public int getTotalPage() {
              return totalPage;
          }
      
          public void setTotalPage(int totalPage) {
              this.totalPage = totalPage;
          }
      
          public int getCurrentPage() {
              return currentPage;
          }
      
          public void setCurrentPage(int currentPage) {
              this.currentPage = currentPage;
          }
      
          public int getRows() {
              return rows;
          }
      
          public void setRows(int rows) {
              this.rows = rows;
          }
      
          public List<T> getList() {
              return list;
          }
      
          public void setList(List<T> list) {
              this.list = list;
          }
      
          @Override
          public String toString() {
              return "PageBean{" +
                      "totalCount=" + totalCount +
                      ", totalPage=" + totalPage +
                      ", currentPage=" + currentPage +
                      ", rows=" + rows +
                      ", list=" + list +
                      '}';
          }
      }
      
      
  4. dao 包

    • UserDao

      package com.zt.dao;
      
      import com.zt.domain.User;
      
      import java.util.List;
      import java.util.Map;
      
      public interface UserDao {
      
          /**
           * 添加用户信息
            * @param user
           */
          public void add(User user);
      
          /**
           * 删除用户信息
           * @param id
           */
          public void delete(int id);
      
          /**
           * 查询用户信息
           * @param id
           * @return
           */
          public User find(int id);
      
          /**
           * 更新用户信息
           * @param user
           */
          public void update(User user);
      
          /**
           * 查询总记录数
           * @return
           * @param condition
           */
          public int findTotalCount(Map<String, String[]> condition);
      
          /**
           * 分页条件查询用户信息
           * @param start
           * @param rows
           * @param condition
           * @return
           */
          public List<User> findByPage(int start, int rows, Map<String, String[]> condition);
      }
      
      
    • UserDaoImpl

      package com.zt.dao.impl;
      
      import com.zt.dao.UserDao;
      import com.zt.domain.User;
      import com.zt.utils.JDBCUtils;
      import org.springframework.jdbc.core.BeanPropertyRowMapper;
      import org.springframework.jdbc.core.JdbcTemplate;
      
      import java.util.ArrayList;
      import java.util.List;
      import java.util.Map;
      import java.util.Set;
      
      public class UserDaoImpl implements UserDao {
          // 使用 Spring JDBC 操作数据库
          private JdbcTemplate jdbcTemplate = new JdbcTemplate(JDBCUtils.getDataSource());
      
          @Override
          public void add(User user) {
              String sql = "insert into user values(null,?,?,?,?,?,?)";
              jdbcTemplate.update(sql,user.getName(),user.getGender(),user.getAge(),user.getAddress(),user.getQq(),user.getEmail());
          }
      
          @Override
          public void delete(int id) {
              String sql = "delete from user where id = ?";
              jdbcTemplate.update(sql,id);
          }
      
          @Override
          public User find(int id) {
              String sql = "select * from user where id = ?";
              User user = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), id);
              return user;
          }
      
          @Override
          public void update(User user) {
              String sql = "update user set name = ?, gender = ?, age = ?, address = ?, qq = ?, email = ? where id = ?";
              jdbcTemplate.update(sql,user.getName(),user.getGender(),user.getAge(),user.getAddress(),user.getQq(),user.getEmail(),user.getId());
          }
      
          @Override
          public int findTotalCount(Map<String, String[]> condition) {
              // 1.定义初始化 sql,注意 sql语句后加空格
              String sql = "select count(*) from user where 1 = 1 ";
              StringBuilder stringBuilder = new StringBuilder(sql);
              // 2.定义参数的集合 params
              List<Object> params = new ArrayList<Object>();
              // 3.遍历 condition
              Set<String> keySet = condition.keySet();
              for (String key : keySet) {
                  // 排除分页条件参数
                  if("currentPage".equals(key) || "rows".equals(key)){
                      continue;
                  }
                  // 获取 value
                  String value = condition.get(key)[0];
                  // 判断 value 是否有值
                  if(value != null || !"".equals(value)){
                      // 给 sql 附加条件语句,注意 sql语句前后加空格
                      stringBuilder.append(" And " + key +" like ? ");
                      // 将 value 放入 params 集合
                      params.add("%"+value+"%");
                  }
              }
      
              return jdbcTemplate.queryForObject(stringBuilder.toString(), Integer.class, params.toArray());
          }
      
          @Override
          public List<User> findByPage(int start, int rows, Map<String, String[]> condition) {
              // 1.定义初始化 sql,注意 sql语句后加空格
              String sql = "select * from user where 1 = 1 ";
              StringBuilder stringBuilder = new StringBuilder(sql);
              // 2.定义参数的集合 params
              List<Object> params = new ArrayList<Object>();
              // 3.遍历 condition
              Set<String> keySet = condition.keySet();
              for (String key : keySet) {
                  // 排除分页条件参数
                  if("currentPage".equals(key) || "rows".equals(key)){
                      continue;
                  }
                  // 获取 value
                  String value = condition.get(key)[0];
                  // 判断 value 是否有值
                  if(value != null || !"".equals(value)){
                      // 给 sql 附加条件语句,注意 sql语句前后加空格
                      stringBuilder.append(" And " + key +" like ? ");
                      // 将 value 放入 params 集合
                      params.add("%"+value+"%");
                  }
              }
              // 4.添加分页条件
              stringBuilder.append(" limit ?,? ");
              // 5.添加分页条件参数值
              params.add(start);
              params.add(rows);
      
              return jdbcTemplate.query(stringBuilder.toString(), new BeanPropertyRowMapper<User>(User.class), params.toArray());
          }
      }
      
      
  5. service 包

    • UserService

      package com.zt.service;
      
      import com.zt.domain.PageBean;
      import com.zt.domain.User;
      
      import java.util.Map;
      
      public interface UserService {
      
          /**
           * 添加用户信息
           * @param user
           */
          public void addUser(User user);
      
          /**
           * 删除用户信息
           * @param id
           */
          public void deleteUser(String id);
      
          /**
           * 查询用户信息
           * @param id
           */
          public User findUser(String id);
      
          /**
           * 更新用户信息
           * @param user
           */
          public void updateUser(User user);
      
          /**
           * 分页条件查询用户信息
           * @param currentPage
           * @param rows
           * @param condition
           * @return
           */
          public PageBean<User> findUserByPage(String currentPage, String rows, Map<String, String[]> condition);
      
      }
      
      
    • UserServiceImpl

      package com.zt.service.impl;
      
      import com.zt.dao.UserDao;
      import com.zt.dao.impl.UserDaoImpl;
      import com.zt.domain.PageBean;
      import com.zt.domain.User;
      import com.zt.service.UserService;
      
      import java.util.List;
      import java.util.Map;
      
      public class UserServiceImpl implements UserService {
          // 调用 UserDaoImpl 来实现业务逻辑
          private UserDao userDao = new UserDaoImpl();
      
          @Override
          public void addUser(User user) {
              userDao.add(user);
          }
      
          @Override
          public void deleteUser(String id) {
              userDao.delete(Integer.parseInt(id));
          }
      
          @Override
          public User findUser(String id) {
              return userDao.find(Integer.parseInt(id));
          }
      
          @Override
          public void updateUser(User user) {
              userDao.update(user);
          }
      
          @Override
          public PageBean<User> findUserByPage(String currentPage, String rows, Map<String, String[]> condition) {
              int currentPage1 = Integer.parseInt(currentPage);
              int rows1 = Integer.parseInt(rows);
              // 1.创建一个空的 PageBean 对象
              PageBean<User> userPageBean = new PageBean<>();
              // 2.设置属性
              userPageBean.setCurrentPage(currentPage1);
              userPageBean.setRows(rows1);
              // 3.调用 dao 查询总记录数
              int totalCount = userDao.findTotalCount(condition);
              userPageBean.setTotalCount(totalCount);
              // 4.调用 dao 查询 list 集合
              // 计算开始的记录索引
              int start = (currentPage1 - 1) * rows1;
              List<User> byPage = userDao.findByPage(start, rows1, condition);
              userPageBean.setList(byPage);
              // 5.计算总页码数
              int totalPage = totalCount % rows1 == 0 ?  totalCount/rows1 : totalCount/rows1 + 1;
              userPageBean.setTotalPage(totalPage);
      
              return userPageBean;
          }
      }
      
      
  6. servlet 包

    • FindUserByPageServlet

      package com.zt.web.servlet;
      
      import com.zt.domain.PageBean;
      import com.zt.domain.User;
      import com.zt.service.UserService;
      import com.zt.service.impl.UserServiceImpl;
      
      import javax.servlet.ServletException;
      import javax.servlet.annotation.WebServlet;
      import javax.servlet.http.HttpServlet;
      import javax.servlet.http.HttpServletRequest;
      import javax.servlet.http.HttpServletResponse;
      import java.io.IOException;
      import java.util.Map;
      
      @WebServlet("/FindUserByPageServlet")
      public class FindUserByPageServlet extends HttpServlet {
          protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              // 1.设置编码
              request.setCharacterEncoding("utf-8");
              // 2.获取参数
              String currentPage = request.getParameter("currentPage"); // 当前页码
              String rows = request.getParameter("rows"); // 每页显示条数
              Map<String, String[]> condition = request.getParameterMap();
      
              // 3.参数为空的情况
              if(currentPage == null || "".equals(currentPage)) {
                  currentPage = "1";
              }
              if(rows == null || "".equals(rows)) {
                  rows = "5";
              }
      
              // 4.调用 UserService 完成查询
              UserService userService = new UserServiceImpl();
              PageBean<User> userByPage = userService.findUserByPage(currentPage, rows, condition);
              // 5.将 userByPage 存入 request
              request.setAttribute("userByPage",userByPage);
              // 6.将 condition 存入 request
              request.setAttribute("condition",condition);
              // 7.转发到 list.jsp
              request.getRequestDispatcher("/list.jsp").forward(request,response);
      
          }
      
          protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              this.doPost(request, response);
          }
      }
      
      
    • AddUserServlet

      package com.zt.web.servlet;
      
      import com.zt.domain.User;
      import com.zt.service.UserService;
      import com.zt.service.impl.UserServiceImpl;
      import org.apache.commons.beanutils.BeanUtils;
      
      import javax.servlet.ServletException;
      import javax.servlet.annotation.WebServlet;
      import javax.servlet.http.HttpServlet;
      import javax.servlet.http.HttpServletRequest;
      import javax.servlet.http.HttpServletResponse;
      import java.io.IOException;
      import java.lang.reflect.InvocationTargetException;
      import java.util.List;
      import java.util.Map;
      
      @WebServlet("/AddUserServlet")
      public class AddUserServlet extends HttpServlet {
          protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              // 1.设置编码
              request.setCharacterEncoding("utf-8");
              // 2.获取参数
              Map<String, String[]> parameterMap = request.getParameterMap();
              // 3.封装对象
              User user = new User();
              try {
                  BeanUtils.populate(user,parameterMap);
              } catch (IllegalAccessException e) {
                  e.printStackTrace();
              } catch (InvocationTargetException e) {
                  e.printStackTrace();
              }
              // 4.调用 UserService 完成添加
              UserService userService = new UserServiceImpl();
              userService.addUser(user);
      
              //5.重定向到 FindUserByPageServlet
              response.sendRedirect(request.getContextPath()+"/FindUserByPageServlet");
          }
      
          protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              this.doPost(request, response);
          }
      }
      
      
    • DelUserServlet

      package com.zt.web.servlet;
      
      import com.zt.service.UserService;
      import com.zt.service.impl.UserServiceImpl;
      
      import javax.servlet.ServletException;
      import javax.servlet.annotation.WebServlet;
      import javax.servlet.http.HttpServlet;
      import javax.servlet.http.HttpServletRequest;
      import javax.servlet.http.HttpServletResponse;
      import java.io.IOException;
      
      @WebServlet("/DelUserServlet")
      public class DelUserServlet extends HttpServlet {
          protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              // 1.获取参数
              String id = request.getParameter("id");
              // 2.调用 UserService 完成删除
              UserService userService = new UserServiceImpl();
              userService.deleteUser(id);
              // 3.重定向到 FindUserByPageServlet
              response.sendRedirect(request.getContextPath()+"/FindUserByPageServlet");
          }
      
          protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              this.doPost(request, response);
          }
      }
      
      
    • DelSelectedServlet

      package com.zt.web.servlet;
      
      import com.zt.service.UserService;
      import com.zt.service.impl.UserServiceImpl;
      
      import javax.servlet.ServletException;
      import javax.servlet.annotation.WebServlet;
      import javax.servlet.http.HttpServlet;
      import javax.servlet.http.HttpServletRequest;
      import javax.servlet.http.HttpServletResponse;
      import java.io.IOException;
      
      @WebServlet("/DelSelectedServlet")
      public class DelSelectedServlet extends HttpServlet {
          protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              // 1.获取参数
              String[] ids = request.getParameterValues("id");
              // 2.调用 UserService 完成删除
              UserService userService = new UserServiceImpl();
              for (String id : ids) {
                  userService.deleteUser(id);
              }
              // 3.重定向到 FindUserByPageServlet
              response.sendRedirect(request.getContextPath()+"/FindUserByPageServlet");
      
          }
      
          protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              this.doPost(request, response);
          }
      }
      
      
    • FindUserServlet

      package com.zt.web.servlet;
      
      import com.zt.domain.User;
      import com.zt.service.UserService;
      import com.zt.service.impl.UserServiceImpl;
      
      import javax.servlet.ServletException;
      import javax.servlet.annotation.WebServlet;
      import javax.servlet.http.HttpServlet;
      import javax.servlet.http.HttpServletRequest;
      import javax.servlet.http.HttpServletResponse;
      import java.io.IOException;
      
      @WebServlet("/FindUserServlet")
      public class FindUserServlet extends HttpServlet {
          protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              // 1.获取参数
              String id = request.getParameter("id");
              // 2.调用 UserService 完成查询
              UserService userService = new UserServiceImpl();
              User user = userService.findUser(id);
              // 3.将 user 存入 request
              request.setAttribute("user",user);
              // 4.转发到 update.jsp
              request.getRequestDispatcher("/update.jsp").forward(request,response);
          }
      
          protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              this.doPost(request, response);
          }
      }
      
      
    • UpdateUserServlet

      package com.zt.web.servlet;
      
      import com.zt.domain.User;
      import com.zt.service.UserService;
      import com.zt.service.impl.UserServiceImpl;
      import org.apache.commons.beanutils.BeanUtils;
      
      import javax.servlet.ServletException;
      import javax.servlet.annotation.WebServlet;
      import javax.servlet.http.HttpServlet;
      import javax.servlet.http.HttpServletRequest;
      import javax.servlet.http.HttpServletResponse;
      import java.io.IOException;
      import java.lang.reflect.InvocationTargetException;
      import java.util.Map;
      
      @WebServlet("/UpdateUserServlet")
      public class UpdateUserServlet extends HttpServlet {
          protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              // 1.设置编码
              request.setCharacterEncoding("utf-8");
              // 2.获取参数
              Map<String, String[]> parameterMap = request.getParameterMap();
              // 3.封装对象
              User user = new User();
              try {
                  BeanUtils.populate(user,parameterMap);
              } catch (IllegalAccessException e) {
                  e.printStackTrace();
              } catch (InvocationTargetException e) {
                  e.printStackTrace();
              }
              // 4.调用 UserService 完成修改
              UserService userService = new UserServiceImpl();
              userService.updateUser(user);
      
              //5.重定向到 FindUserByPageServlet
              response.sendRedirect(request.getContextPath()+"/FindUserByPageServlet");
          }
      
          protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              this.doPost(request, response);
          }
      }
      
      

你可能感兴趣的:(JavaWeb)