1.分析
1.点击修改,跳转到修改的页面,点击哪个,则获取哪个员工的信息,即默认修改页面的值。
2.点击确认修改,修改完成后重定向到管理员工页面。如图:

2.步骤
a.在接口中声明去修改和修改的方法
b.实现接口中的方法
c.点击修改跳转Update.jsp
d.Update.jsp提交请求参数
e.servlet获取请求参数
f.调用dao,将修改后的数据添加到数据库中
g.重定向到员工管理(“/emp”),执行查询所有员工,显示到页面。
代码:
a:
IEmpDAO.java

b:
EmpDAOImpl.java

c:
emp.jsp

ToUpdateEmpServlet.java
@WebServlet("/toUpdate")
public class ToUpdateEmpServlet extends HttpServlet {
/*去修改:用户点击修改按钮请求到达此servlet
* 获取当前要修改员工的数据,共享给jsp,请求转发
* */
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
/*获取请求参数id*/
String id = req.getParameter("id");
/*根据id获取员工数据*/
EmpDAOImpl dao=new EmpDAOImpl();
Map<String, Object> emp = dao.getEmp(Integer.parseInt(id));
/*请求共享数据(此处我们共享的是一个map不是一个List<map>)*/
req.setAttribute("emp",emp);
/*请求转发到update.jsp*/
req.getRequestDispatcher("update.jsp").forward(req,resp);
}
}
d:
update.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<head>
<title>修改</title>
<style type="text/css">
fieldset{ 300px;margin: 100px auto;}
</style>
</head>
<body>
<fieldset id="">
<legend>修改员工</legend>
<form action="/day49/update" method="post">
<input type="hidden" name="id" value="${emp.id}" />
<div>
员工姓名: <input name="name" value="${emp.name}" />
</div>
<div>
员工手机: <input name="telephone" value="${emp.telephone}" />
</div>
<div>
员工部门:
<select name="deptID" id="deptID" >
<option value="1" ${emp.deptID==1?"selected":""} >总经办</option>
<option value="2" ${emp.deptID==2?"selected":""} >人事部</option>
<option value="3" ${emp.deptID==3?"selected":""} >业务部</option>
</select>
</div>
<div>
员工角色:
<select name="roleID" id="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" >
<option value="0" id="s0">离职</option>
<option value="1" id="s1">在职</option>
</select>
</div>
<button>修改</button>
</form>
</fieldset>
<script>
// 当前表单的表单元素 够不够
// 让 角色下拉框中的 1 2 3
document.getElementById("r"+${emp.roleID}).selected = "selected";
document.getElementById("s"+${emp.state}).selected = "selected";
</script>
</body>
</html>
e,f,g:
UpdateEmpServlet.java
@WebServlet("/update")
public class UpdateEmpServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
/*处理中文乱码*/
req.setCharacterEncoding("UTF-8");
/**获取请求参数*/
String name = req.getParameter("name");
String telephone = req.getParameter("telephone");
String deptID = req.getParameter("deptID");
String roleID = req.getParameter("roleID");
String state = req.getParameter("state");
String id = req.getParameter("id");
/*生成员工对象*/
Employee emp=new Employee(Integer.parseInt(id),name,telephone,Integer.parseInt(deptID),Integer.parseInt(roleID),Integer.parseInt(state));
/*调用dao将数据添加到数据库中*/
IEmpDAO dao=new EmpDAOImpl();
dao.update(emp);
/*重定向到/emp*/
resp.sendRedirect("/day49/emp");
}
}