制作CRM管理系统03(用户管理)

目录

一、用户管理界面显示用户信息

1.1、前端HTML

1.1.1、通过axios发送请求到Servlet获取用户列表数据

1.1.2、将Servlet响应的数据通过v-for指令显示到table上

1.2后端Servlet

1.2.1、DAO中添加查询全部用户的方法

1.2.2、创建UserListServlet查询全部用户

二、用户管理界面删除功能

2.1、前端HTML

2.1.1、给表格的按钮添加删除时执行的函数

2.1.2、在执行删除的函数中通过axios请求servlet删除用户

2.1.3、刷新用户列表(方便调用)

2.1.4、源代码

2.2后端Servlet

2.2.1、DAO中添加根据id删除用户的方法

2.2.2、创建UserDeleteServlet

三、用户管理界面修改功能

3.1前端HTML

 3.2后端serverlet

3.2.1在UserDAO中添加根据id修改用户信息的方法

 3.2.2添加UserUpdateServlet


一、用户管理界面显示用户信息

1.1、前端HTML

1.1.1、通过axios发送请求到Servlet获取用户列表数据

1.1.2、将Servlet响应的数据通过v-for指令显示到table上

1.2后端Servlet

1.2.1、DAO中添加查询全部用户的方法

 接口

 /**
   查询所有用户
    */
   public List<User> selectAll();

方法重写

 代码如下:

public List<User> selectAll() {
        ArrayList<User> list = new ArrayList<User>();
        String sql="select * from t_user order by id desc";
        ResultSet rs = executeQuery(sql);
        try {
            while(rs.next()){
                User user = new User();
                user.setId(rs.getInt("id"));
                user.setUserName(rs.getString("user_name"));
                user.setPasswd(rs.getString("passwd"));
                user.setNickName(rs.getString("nick_name"));
                user.setSex(rs.getInt("sex"));
                user.setPhone(rs.getString("phone"));
                user.setImg(rs.getString("img"));
                user.setBirth(rs.getString("birth"));
                list.add(user);
            }
            //释放资源啊
            closeAll();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return list;
    }

1.2.2、创建UserListServlet查询全部用户

代码如下: 

package controller;

import com.alibaba.fastjson.JSON;
import dao.UserDAO;
import dao.impl.UserDAOImpl;
import entity.User;

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.io.PrintWriter;
import java.util.List;

/**
 * 获取用户列表
 */
@WebServlet("/user_list")
public class UserListServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置编码类,解决中文乱码问题
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("application/json;charset=utf-8");
        //获取打印输出流
        PrintWriter writer = resp.getWriter();
        //接受HTML请求传递的值
        UserDAO dao = new UserDAOImpl();
        List<User> list = dao.selectAll();
        String json = JSON.toJSONString(list);
        writer.print(json);

        //释放资源
        writer.close();
    }
}

二、用户管理界面删除功能

2.1、前端HTML

2.1.1、给表格的按钮添加删除时执行的函数

2.1.2、在执行删除的函数中通过axios请求servlet删除用户

方框内代码是尝试找到要删除的id,通过HTML页面的后台控制器显示 

2.1.3、刷新用户列表(方便调用)

2.1.4、源代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户管理</title>
    <!--    导入Bootstrap依赖-->
    <link rel="stylesheet" href="asset/bootstrap-3.3.7-dist/css/bootstrap.min.css">
    <script src="asset/jquery-3.5.1/jquery-3.5.1.min.js"></script>
    <script src="asset/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
    <!--    导入vue依赖-->
    <script src="asset/vue.min-v2.5.16.js"></script>
    <script src="asset/axios.min.js"></script>
    <style>
        /*默认样式*/
        a:link {
            font-size: 20px;
            color: rgb(109, 109, 109);
        }

        /*访问过之后的颜色*/
        a:visited {
            font-size: 20px;
            color: rgb(109, 109, 109);
        }

        /*鼠标悬浮链接上*/
        /*text-decoration: none;不显示下划线*/
        a:hover {
            font-size: 20px;
            color: white;
            text-decoration: none;
        }

    </style>
</head>
<body>
<div class="container" id="app">
    <!--        bootstrap行-->
    <div class="row">
        <!--            显示导航-->
        <div class="col-md-3" style="background-color: rgb(0,21,41);height: 800px;">
            <!--            bootstrap行-->
            <div class="row">
                <div class="col-md-12"
                     style="background-color: rgb(0,40,77);text-align: center;height: 70px;line-height: 70px;font-size: 20px;color: white;font-weight: bold;">
                    <img src="asset/img/logo.png" style="width: 30px;height: 30px;margin-right: 8px;"/>
                    蜗牛CRM管理系统
                </div>
            </div>
            <!--                -->
            <div class="row">
                <div class="col-md-12" style="text-align: center; padding:20px 0px 20px 0px; ">
                    <a href="index.html">进入首页</a>
                </div>
            </div>
            <!--                -->
            <div class="row">
                <div class="col-md-12" style="text-align: center; padding:20px 0px 20px 0px; ">
                    <a href="user_list.html">用户管理</a>
                </div>
            </div>
            <!--                -->
            <div class="row">
                <div class="col-md-12" style="text-align: center; padding:20px 0px 20px 0px; ">
                    <a href="user_add.html">添加用户</a>
                </div>
            </div>
            <!--                -->
            <div class="row">
                <div class="col-md-12" style="text-align: center; padding:20px 0px 20px 0px; ">
                    <a href="#">客户管理</a>
                </div>
            </div>
            <!--                -->
            <div class="row">
                <div class="col-md-12" style="text-align: center; padding:20px 0px 20px 0px; ">
                    <a href="#">添加客户</a>
                </div>
            </div>
            <!--                -->
            <div class="row">
                <div class="col-md-12" style="text-align: center; padding:20px 0px 20px 0px; ">
                    <a href="changepassword.html">修改密码</a>
                </div>
            </div>
            <!--                -->
            <div class="row">
                <div class="col-md-12" style="text-align: center; padding:20px 0px 20px 0px; ">
                    <a href="login.html">退出登录</a>
                </div>
            </div>
        </div>
        <!--            显示内容-->
        <div class="col-md-9" style="border: 1px solid gray; height: 800px;">
            <!--                显示提示位置-->
            <div class="row">
                <div class="col-md-12"
                     style="height: 70px; color: rgb(109,109,109);font-size: 18px;line-height: 70px;font-weight: bold;padding-left: 20px;">
                    >&nbsp;&nbsp;用户管理
                </div>
            </div>
            <div class="row" style="background-color: rgb(240,242,245);height: 730px;padding: 20px;">
                <!--                显示内容-->
                <div class="col-md-12" style="background-color: white;height: 730px;border:none;border-radius: 5px;">
                    <!--                    使用bootstrap表格斑马线样式-->
                    <table class="table table-striped" style="margin-top: 20px;">
                        <!--                        表格描述-->
                        <caption>用户管理-用户列表</caption>
                        <!--                        thead 表头-->
                        <thead>
                        <tr>
                            <th>ID</th>
                            <th>用户名</th>
                            <th>昵称</th>
                            <th>性别</th>
                            <th>生日</th>
                            <th>手机号</th>
                            <th>操作</th>
                        </tr>
                        </thead>
                        <tbody>
                        <tr v-for="u in users">
                            <td>{{u.id}}</td>
                            <td>{{u.userName}}</td>
                            <td>{{u.nickName}}</td>
                            <td>{{u.sex}}</td>
                            <td>{{u.birth}}</td>
                            <td>{{u.phone}}</td>
                            <td>
                                <button class="btn btn-link" @click="doUpdate(u.id)">修改</button>
                                <button class="btn btn-link" @click="doDelete(u.id)">删除</button>
                            </td>
                        </tr>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
</div>
<script>
    new Vue({
        el:'#app',
        data:{
            users:null,
        } ,
        created: function () {//页面加载完成之后执行
           this.reqeustUserList();//调用请求用户列表的函数
        },
        methods:{
            /*删除用户,根据id*/
            doDelete(id){
                /*尝试能不能找到要删除的id
                console.log("要删除的用户id:"+id)
                 */
                //请求serverlet删除用户
                axios.get("delete_user?id="+id).then(response =>{
                    if (response.data=='删除成功'){
                        //删除用户列表
                        this.reqeustUserList();//调用请求用户列表的函数
                    }else{
                        alert("删除失败!!!");
                    }
                });
            },
            doUpdate(id){//点击修改按钮后触发
                //跳转到user_update.html页面,并且传递id过去
                window.location.href="user_update.html?id="+id;
            },
            reqeustUserList(){
                //发送请求获取用户列表
                axios.get("user_list").then(response=>{
                    this.users = response.data;
                });
            },
        }
    });
</script>
</body>
</html>

2.2后端Servlet

2.2.1、DAO中添加根据id删除用户的方法

public int deleteById(int id) {
    String sql = "delete from t_user where id="+id;
    return this.excuteUpdate(sql);
}

2.2.2、创建UserDeleteServlet

package controller;
/**
 * 删除用户,根据id
 */

import dao.UserDAO;
import dao.impl.UserDAOImpl;

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.io.PrintWriter;

@WebServlet("/delete_user")
public class UserDeleteServlet  extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //转码
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("application/json;charset=utf-8");
        //获取打印输出流
        PrintWriter writer = resp.getWriter();
        //获取前台页面传来的id值
        int id=Integer.parseInt(req.getParameter("id"));
        //通过dao删除用户
        UserDAO dao=new UserDAOImpl();
         int  count  = dao.deleteByid(id);
         //向网页输出内容
         if (count>0){
             writer.print("删除成功");
         }else{
             writer.print("删除失败");
         }
        //释放资源
        writer.close();
    }
}

三、用户管理界面修改功能

3.1前端HTML

3.1.1给table中的修改按钮绑定点击事件

3.1.2 新增user_update.html页面

源代码: 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>修改用户</title>
    <!--    导入Bootstrap依赖-->
    <link rel="stylesheet" href="asset/bootstrap-3.3.7-dist/css/bootstrap.min.css">
    <script src="asset/jquery-3.5.1/jquery-3.5.1.min.js"></script>
    <script src="asset/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
    <!--    导入vue依赖-->
    <script src="asset/vue.min-v2.5.16.js"></script>
    <script src="asset/axios.min.js"></script>
    <style>
        /*默认样式*/
        a:link {
            font-size: 20px;
            color: rgb(109, 109, 109);
        }

        /*访问过之后的颜色*/
        a:visited {
            font-size: 20px;
            color: rgb(109, 109, 109);
        }

        /*鼠标悬浮链接上*/
        /*text-decoration: none;不显示下划线*/
        a:hover {
            font-size: 20px;
            color: white;
            text-decoration: none;
        }

    </style>
</head>
<body>
<div class="container" id="app">
    <!--        bootstrap行-->
    <div class="row">
        <!--            显示导航-->
        <div class="col-md-3" style="background-color: rgb(0,21,41);height: 800px;">
            <!--            bootstrap行-->
            <div class="row">
                <div class="col-md-12"
                     style="background-color: rgb(0,40,77);text-align: center;height: 70px;line-height: 70px;font-size: 20px;color: white;font-weight: bold;">
                    <img src="asset/img/logo.png" style="width: 30px;height: 30px;margin-right: 8px;"/>
                    蜗牛CRM管理系统
                </div>
            </div>
            <!--                -->
            <div class="row">
                <div class="col-md-12" style="text-align: center; padding:20px 0px 20px 0px; ">
                    <a href="index.html">进入首页</a>
                </div>
            </div>
            <!--                -->
            <div class="row">
                <div class="col-md-12" style="text-align: center; padding:20px 0px 20px 0px; ">
                    <a href="user_list.html">用户管理</a>
                </div>
            </div>
            <!--                -->
            <div class="row">
                <div class="col-md-12" style="text-align: center; padding:20px 0px 20px 0px; ">
                    <a href="user_add.html">添加用户</a>
                </div>
            </div>
            <!--                -->
            <div class="row">
                <div class="col-md-12" style="text-align: center; padding:20px 0px 20px 0px; ">
                    <a href="#">客户管理</a>
                </div>
            </div>
            <!--                -->
            <div class="row">
                <div class="col-md-12" style="text-align: center; padding:20px 0px 20px 0px; ">
                    <a href="#">添加客户</a>
                </div>
            </div>
            <!--                -->
            <div class="row">
                <div class="col-md-12" style="text-align: center; padding:20px 0px 20px 0px; ">
                    <a href="changepassword.html">修改密码</a>
                </div>
            </div>
            <!--                -->
            <div class="row">
                <div class="col-md-12" style="text-align: center; padding:20px 0px 20px 0px; ">
                    <a href="login.html">退出登录</a>
                </div>
            </div>
        </div>
        <!--            显示内容-->
        <div class="col-md-9" style="border: 1px solid gray; height: 800px;">
            <!--                显示提示位置-->
            <div class="row">
                <div class="col-md-12"
                     style="height: 70px; color: rgb(109,109,109);font-size: 18px;line-height: 70px;font-weight: bold;padding-left: 20px;">
                    >&nbsp;&nbsp;修改用户
                </div>
            </div>
            <div class="row" style="background-color: rgb(240,242,245);height: 730px;padding: 20px;">
                <!--                显示内容-->
                <div class="col-md-12" style="background-color: white;height: 730px;border:none;border-radius: 5px;">
                    <!--                  img-responsive图片自适应, center-block强制居中-->
                    <div class="row">
                        <div class="col-md-4 col-md-offset-4" style="margin-top: 20px;">
                            <label>用户名</label>
                            <input type="text" class="form-control" v-model="userName"/>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-4 col-md-offset-4" style="margin-top: 20px;">
                            <label>昵称</label>
                            <input type="text" class="form-control" v-model="nickName"/>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-4 col-md-offset-4" style="margin-top: 20px;">
                            <label>手机号</label>
                            <input type="text" class="form-control" v-model="phone"/>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-4 col-md-offset-4" style="margin-top: 20px;">
                            <label style="margin-right:15px;">性别</label>
                            <label class="radio-inline">
                                <input type="radio" name="sex" v-model="sex" value="0"/>男
                            </label>
                            <label class="radio-inline">
                                <input type="radio" name="sex" v-model="sex" value="1"/>女
                            </label>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-4 col-md-offset-4" style="margin-top: 20px;">
                            <label>生日</label>
                            <input type="text" class="form-control" v-model="birth"/>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-4 col-md-offset-4" style="margin-top: 20px;text-align: center;">
                            <button class="btn btn-primary" style="margin-right: 8px"@click="doUpdate">修改</button>
                            <button class="btn btn-default"  >重置</button>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
</body>
<script>
  //创建Vue对象
    new Vue({
        el:'#app',
        data:{
            userName: null,
            nickName: null,
            sex: null,
            phone: null,
            birth: null
        },
        methods:{
                doUpdate() {
                    var url=window.location.href;
                    var id= url.substring(url.indexOf("=")+1);//+1为再加一位数
                    var url = "user_update?id="+id+"&user_name="+this.userName+"&nick_name="+this.nickName+"&sex="+this.sex+"&phone="+this.phone+"&birth="+this.birth;
                    axios.get(url).then(response =>{
                            if (response.data=='修改成功'){
                            window.location.href='user_list.html';
                            }else{
                                alert("修改失败");//弹窗警告
                            }
                    });

                }

        },
        created: function () {//页面加载完成后执行
        var url=window.location.href;
        var id= url.substring(url.indexOf("=")+1);//+1为再加一位数
            //console.log(id); 检验是否找到id
            //通过axios发送请求获取用户信息
            axios.get("user_info?id="+id).then(response =>{
                //console.log(response.data);
                this.userName =response.data.userName;
                this.nickName=response.data.nickName;
                this.sex=response.data.sex;
                this.phone=response.data.phone;
                this.birth=response.data.birth;
            });
        },


    });
</script>
</html>

3.1.3 在绑定的修改函数中,跳转到user_update.html

跳转页面时将用户id传递到user_update.html中

 3.1.4 在user_update.html中通过axios根据id回显用户信息(重点!!!!)

红框中的内容为获取页面传递的参数id

 3.1.5在user_update.html中通过axios修改用户信息

3.1.6在按钮控件中加入方法

3.1.7 在vue的methods中写

代码如下: 

methods:{
                doUpdate() {
                    var url=window.location.href;
                    var id= url.substring(url.indexOf("=")+1);//+1为再加一位数
                    var url = "user_update?id="+id+"&user_name="+this.userName+"&nick_name="+this.nickName+"&sex="+this.sex+"&phone="+this.phone+"&birth="+this.birth;
                    axios.get(url).then(response =>{
                            if (response.data=='修改成功'){
                            window.location.href='user_list.html';
                            }else{
                                alert("修改失败");//弹窗警告
                            }
                    });

                }

        },

 讲解:

以上的代码是通过用户管理界面的修改跳转并且数据回显的基础上,即如图所示

 之后执行以下代码:

① 获取url网址

②substring从"="号开始截取,后面+1为再加一位,即获取id

③字符串拼接

④axios方法修改 

 3.2后端serverlet

3.2.1在UserDAO中添加根据id修改用户信息的方法

接口

重写方法 

代码如下:

public int updateByid(User user) {
        String sql="update t_user set user_name='"+user.getUserName()+"',nick_name='"+user.getNickName()+"',phone='"+user.getPhone()+"',birth='"+user.getBirth()+"',sex="+user.getSex()+" where id="+user.getId();
        return executeUpdate(sql);

 3.2.2添加UserUpdateServlet

代码如下:

package controller;

import dao.impl.UserDAOImpl;
import entity.User;

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.io.PrintWriter;

@WebServlet("/user_update")
public class UserUpdateServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置编码类,解决中文乱码问题
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("application/json;charset=utf-8");
        PrintWriter writer = resp.getWriter();
        int id =Integer.parseInt(req.getParameter("id")) ;
        String user_name = req.getParameter("user_name");
        String nick_name = req.getParameter("nick_name");
        String phone = req.getParameter("phone");
        int sex = Integer.parseInt(req.getParameter("sex"));
        String birth = req.getParameter("birth");
        User user = new User();
        user.setId(id);
        user.setUserName(user_name);
        user.setNickName(nick_name);
        user.setPhone(phone);
        user.setSex(sex);
        user.setBirth(birth);
        UserDAOImpl dao = new UserDAOImpl();
        int count = dao.updateByid(user);
        if (count>0){
            writer.print("修改成功");
        }else{
            writer.print("修改失败");
        }

        writer.close();
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
开源CRM管理系统源码是指公开提供的可以自由使用、修改和分发的CRM软件源代码。开源CRM管理系统可以帮助企业实现客户关系管理的自动化和集成化,提升销售、市场、客服等各个业务部门的协同工作效率。 开源CRM管理系统源码的好处有以下几点: 1. 自由性:开源CRM管理系统源码可以自由使用、修改和分发,企业可以根据自身需求进行二次开发和定制,以满足特定的业务需求。 2. 可靠性:开源CRM管理系统源码经过众多开发者和用户的审核和测试,修复了大量的bug,具备较高的稳定性和可靠性。 3. 安全性:开源CRM管理系统源码可以允许安全专家和开发者对源代码进行审查,及时修复漏洞,提高系统的安全性。 4. 社区支持:开源CRM管理系统源码通常具备活跃的开源社区,用户可以在社区中交流和分享使用经验、问题解决方案以及功能扩展等。这样可以快速获得帮助和支持,减少实施和维护的困扰。 开源CRM管理系统源码有很多优秀的选择,如vTiger、SugarCRM、SuiteCRM等。这些开源CRM管理系统源码具备丰富的功能,包括客户管理、销售管理、市场营销、客户服务、团队协作等,可以帮助企业全面提升客户关系管理的效率。 总之,开源CRM管理系统源码为企业提供了一个灵活、可定制的客户关系管理解决方案,帮助企业提升竞争力和效益。同时,企业在选择和使用开源CRM管理系统源码时需要根据自身需求、实力和技术能力进行评估和选择,确保系统能够最大化地满足企业的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值