业务模块: 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{ 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{ 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 { 15%;}
iframe{ 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{ 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>