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回传给浏览器之后乱码。