1.分析
点击添加员工按键,跳转到添加员工页面。点击添加,员工添加到数据库,请求转发到add.jsp。如图:
注意:返回add.jsp页面后,点击员工管理,则会执行一遍查询所有员工,更新emp页面。

2.步骤
a.在接口中声明获取所有员工的方法
b.实现接口中的方法
c.add.jsp提交请求参数
d.获取请求参数
e.调用dao,将数据添加导数据库中
f.请求共享数据
g.请求转发到add.jsp
代码:
a:
IEmpDAo.java

b:
EmpDAOImpl.java

c:
add.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<fieldset id="">
<div align="center" style="color:green">${msg}</div>
<legend>添加员工</legend>
<form action="/day49/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>
</form>
</fieldset>
</body>
</html>
d,e,f,g:
AddEmployeeServlet.java
@WebServlet("/addEmp")
public class AddEmpServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
/*解决中文乱码*/
req.setCharacterEncoding("UTF-8");
// 1 获取请求参数传来的是string
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");
/*生成员工对象 类型需要和实体类中的保持一致*/
Employee employee = new Employee(name,telephone,Integer.parseInt(deptID),Integer.parseInt(roleID),Integer.parseInt(state));
// 2 调用dao 将数据添加到数据库中
IEmpDAO dao=new EmpDAOImpl();
dao.add(employee);
// 3 回传信息 成功/失败
req.setAttribute("msg","添加成功");
// 4 请求转发到 add.jsp
req.getRequestDispatcher("/add.jsp").forward(req,resp);
}
}
注意:
请求乱码:是浏览器发给servlet之后乱码。
响应乱码:是servlet回传给浏览器之后乱码。