业务模块: 1 登录模块
2 员工查询
3 删除员工
4 添加新员工
5 修改员工信息
一, 登陆业务
/*
1. 要获取一个登陆窗口
这个登陆窗口是用户访问一个 ULT 地址栏发送一个请求到新建的 index.jsp(里面搭建一个登陆界面: from 表单)获得的;
2.loginSrevlet 操作
浏览器发送一个请求到 LoginSrevlet, 使 LoginSrevlet 获取请求参数的中的 账号密码;
然后调用 dao 层里面的方法对用户输入的账号密码进行验证(查询对比);
如果正确就对重定向到 main,jsp(里面搭建的是员工管理系统的主页面 需要修改地址栏), 如果不正确共享数据 ("对不起账户或者密码不正确") 到请求发送到 index.jsp(登陆页面)
*/
第一步: 获取登陆窗口
1 URT 地址发送一个请求到 jsp(用户地址栏输入一个 URL 获取一个登陆窗口)
2 创建一个 index.jsp 里面搭建一个登陆的界面(from 表单)
第二步: 用户的账号密码登陆
1 浏览器发送一个请求到 LoginSrevlet, 使 LoginSrevlet 获取请求参数中的 账号和密码
( req.getParameter("参数的 key")获得请求参数 )
- String username = req.getParameter("username");
- String password = req.getParameter("password");
2 调用 dao 的登陆方法, 验账号证密码是否正确
- IEmpDAO dao = new EmpDAOImpl();
- boolean login = dao.Login(username, password);
- if (login){
3 如果正确, URL 重定向到 mian.jsp (需要修改地址栏)
- resp.sendRedirect("/day02/main.jsp");// 重定向要写全路径, 为了告诉他二次请求访问的是哪个工程下的谁谁
- }else {
4 如果不正确, 共享数据(对不起账号或密码错误) 请求转发到 index.jsp(登陆界面)
- req.setAttribute("error","对不起密码或者账号错误");
- req.getRequestDispatcher("/index.jsp").forward(req,resp);
- }
二, 员工查新询业务
/*
点击管理系统的超链接进行查询操作.
1.EmpServlet 操作
浏览器 (mian.jsp 搭建的员工管理主页面) 发送一个查询所有信息的请求到 EmployeeServlet;
调用 dao 层里面的方法获取所有员工的信息;
把所获得的数据共享, 请求共享数据转发到 emp.jsp(搭建的 所有员工信息的界面);
*/
当点击用户管理超链接的时候, 右边 iframe 显示所有用户信息
1 浏览器发送请求到 EmployeeServlet, 从 dao 里面获取所有员工信息
- LoginDAOImpl dao = new LoginDAOImpl();
- List<Map<String, Object>> list = dao.getAllEmp();
2 共享数据
req.setAttribute("list",list);
3 请求转发共享数据到 emp.jsp
req.getRequestDispatcher("emp.jsp").forward(req,resp);
三, 删除员工
/*
1.DeleteEmpServlet 操作
浏览器 (在 emp.jsp 里面搭建的界面进行操作的) 送一个请求到 DeleteEmpServlet;
获取请求参数 id;
调用 dao, 根据 id 来进行删除操作;
删除后重定向到 / emp(执行查询业务
*/
当用户点击某个删除按钮, 点击的哪个, 哪一个就被删除并且更新
第一步: 浏览器发送请求到 DeletEmpServlet
1 获取请求参数 id
String id = req.getParameter("id");
2 调用 dao 根据 id 删除员工 要用 int 的包装类进行包装 转成 String 类型
- IDeleteDAO dao = new DeleteDAOImpl();
- boolean delete = dao.delete(Integer.parseInt(id));
3 重定向到 / emp
resp.sendRedirect("/day02/emp");
第二步: 重定向到 EmpServlet
1 调用 dao 获取所有员工信息
2 请求共享数据
3 请求转发到 emp.jsp
四, 添加员工
/*
1. 浏览器 (map.jsp) 发送一个请求到 AddServlet
获取请求参数 要添加的参数;
调用 dao 将数据添加到数据库中;
如果添加成功 共享数据 ("添加成功") 请求发送到 add.jsp(里面搭建是添加数据的界面面)
如果添加失败 共享数据 ("添加失败") 请求发送到 add.jsp
*/
用户点击添加按钮 添加新的员工信息
1 乱码的处理
req.setCharacterEncoding("utf-8");
2 获取请求参数
- String name = req.getParameter("要添加的参数");
- // 数据类型的不同要转变类型 添加需要 id
- Eeployee eeployee = new Eeployee(1, 参数));
2 调用 dao 将数据添加到数据库中
- IAddDAO dao = new AddDAOImpl();
- boolean add = dao.add(eeployee);
3 回传信息 成功 / 失败
- if (add){
- // 添加成功共享 请求发送给 add.jsp
- req.setAttribute("shuju","添加成功");
- req.getRequestDispatcher("/add.jsp").forward(req,resp);
- }else {
- // 添加失败
- resp.setAttribute("添加失败");
- req.getRequestDispatcher("/add.jsp").forward(req,resp);
- }
五, 修改员工
/* 第一步:
浏览器 (emp.jsp) 发送请求到 UpdateSrevlet;
获取请求参数 id;
调用 dao, 把要修改的数据查询出来;
共享数据 请求发送给 update.jsp(搭建的 修改界面)
第二步:
浏览器 ("update.jsp") 发送请求 toUpdateServlet;
获取请求参数 要修改的参数;
调用 dao 进行修改
从定向到 / emp.jsp
*/
用户点击某个修改按钮 点击的哪个 就对哪个进行修改操作
第一步:
- // 中文乱码问题
- req.setCharacterEncoding("utf-8");
1 获取请求参数 id(修改第一步的 servlet 操作)
String id=req.getParameter("id");
2 掉用 dao, 把要修改的信息查询出来
- IDeleteDAO dao = new DeleteDAOImpl();
- Map<String, Object> emp = dao.getEmp(Integer.parseInt(id));
3 数据共享 请求发送给 update.jsp
- req.setAttribute("emp",emp);
- req.getRequestDispatcher("/update.jsp").forward(req,resp);
第二步;
- // 处理请求乱码的问题 (请求乱码是浏览器发给 servlet 之后乱码, 响应乱码 servlet 回传给浏览起之后的乱码 现在不用处理浏览器的乱码 因为我们的响应度交给了 jsp)
- req.setCharacterEncoding("UTF-8");
1 获取 请求参数 (修改第二步的 servlet 操作)
String name = req.getParameter("要修改的参数");
2 调用 dao 进行修改 // 数据类型不同要转换
Eeployee eeployee = new Eeployee(参数);
3 从定向到 / emp.jsp
- resp.sendRedirect("/day02/emp");
- index.jsp(源代码)
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <HTML>
- <head>
- <title > 后台登陆</title>
- <style>
- fieldset{width: 300px;margin: 100px auto}
- </style>
- </head>
- <body>
- <fieldset>
- <legend > 登陆窗口</legend>
- <div style="color: blueviolet">${error}</div>
- <form action="/day02/login?id=${emp.id}" method="get">
- <div>
- 用户名:<input name="username"/>
- </div>
- <div>
- 密码:<input name="password"type="password"/>
- </div>
- <button > 登陆</button>
- </form>
- </fieldset>
- </body>
- </HTML>
- ad
- add.jsp(源代码)
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <HTML>
- <head>
- <title>Title</title>
- <style type="text/CSS">
- fieldset{width: 300px;margin: 100px auto;}
- </style>
- </head>
- <body>
- <fieldset id="">
- <legend > 添加员工</legend>
- <form action="/day02/addEmp" method="post">
- <div>
- 员工姓名: <input name="name" />
- </div>
- <div>
- 员工手机: <input name="telephone" />
- </div>
- <div>
员工部门:
- <select name="deptID">
- <option value="1">总经办</option>
- <option value="2">人事部</option>
- <option value="3">业务部</option>
- </select>
- </div>
- <div>
员工角色:
- <select name="roleID">
- <option value="1">超级管理员</option>
- <option value="2">员工管理员</option>
- <option value="3">业务管理员</option>
- </select>
- </div>
- <div>
员工状态:
- <select name="state">
- <option value="0">离职</option>
- <option value="1">在职</option>
- </select>
- </div>
- <button > 添加</button>
- <div>${shuju}</div>
- </form>
- </fieldset>
- </body>
- </HTML>
- emp.jsp(源码)
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <HTML>
- <head>
- <title>Title</title>
- </head>
- <body>
- <table border="1" cellspacing="0" width="95%" align="center">
- <tr>
- <th > 员工编号</th>
- <th > 员工姓名</th>
- <th > 员工手机号</th>
- <th > 入职时间</th>
- <th > 员工部门</th>
- <th > 员工角色</th>
- <th > 员工状态</th>
- <th > 员工操作</th>
- </tr>
- <c:forEach var="emp" items="${list}">
- <tr>
- <th>${emp.id}</th>
- <th>${emp.name}</th>
- <th>${emp.telephone}</th>
- <th>${emp.hiredate}</th>
- <th>${emp.dname}</th>
- <th>${emp.rname}</th>
- <th>${emp.state==1?"在职":"离职"}</th>
- <th><a href="/day02/delete?id=${emp.id}">删除</a>
- <a href="/day02/ToUpdate?id=${emp.id}">修改</a>
- </th>
- </tr>
- </c:forEach>
- </table>
- </body>
- </HTML>
- main.jsp(源码)
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <!DOCTYPE HTML>
- <HTML>
- <head>
- <meta charset="utf-8" />
- <title>
- </title>
- <style type="text/css">
- ul,iframe{float: left;} ul {width: 15%;} iframe{width: 80%;}
- </style>
- </head>
- <body>
- <h1>
- 欢迎来到德莱联盟
- </h1>
- <div>
- <ul>
- <li>
- <a href="/day02/emp" target="show">
- 员工管理 1
- </a>
- </li>
- <li>
- <a href="/day02/add.jsp" target="show">
- 添加员工
- </a>
- </li>
- <li>
- <a href="">
- 员工管理 3
- </a>
- </li>
- <li>
- <a href="">
- 员工管理 4
- </a>
- </li>
- <li>
- <a href="">
- 员工管理 5
- </a>
- </li>
- <li>
- <a href="">
- 员工管理 6
- </a>
- </li>
- <li>
- <a href="">
- 员工管理 7
- </a>
- </li>
- <li>
- <a href="">
- 员工管理 8
- </a>
- </li>
- </ul>
- <iframe name="show" height="750px">
- </iframe>
- </div>
- </body>
- </HTML>
- update.jsp(源码)
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <HTML>
- <head>
- <title > 修改</title>
- <style type="text/css">
- fieldset{width: 300px;margin: 100px auto;}
- </style>
- </head>
- <body>
- <fieldset id="">
- <legend > 添加员工</legend>
- <form action="/day02/update" method="post">
- <div>
- <input type="hidden" name="id" value="${emp.id}"/>
- </div>
- <div>
- 员工姓名: <input name="name"value="${emp.name}" />
- </div>
- <div>
- 员工手机: <input name="telephone" value="${emp.telephone}"/>
- </div>
- <div>
员工部门:
- <select name="deptID"value="${emp.deptID}">
- <option value="1" id="d1">总经办</option>
- <option value="2" id="d2">人事部</option>
- <option value="3" id="d3">业务部</option>
- </select>
- </div>
- <div>
员工角色:
- <select name="roleID"value="${emp.roleID}">
- <option value="1" id="r1">超级管理员</option>
- <option value="2" id="r2">员工管理员</option>
- <option value="3" id="r3">业务管理员</option>
- </select>
- </div>
- <div>
员工状态:
- <select name="state"value="${emp.state}">
- <option value="0" ${emp.state==0?"selected":""}>离职</option>
- <option value="1" ${emp.state==1?"selcted":""}>在职</option>
- </select>
- </div>
- <button > 添加</button>
- <div>${shuju}</div>
- </form>
- </fieldset>
- <script>
- document.getElementById("d"+${emp.deptID}).selected="selected";
- document.getElementById("r"+${emp.roleID}).selected="selected";
- </script>
- </body>
- </HTML>
来源: https://www.cnblogs.com/wwwbobocom/p/10733460.html