重构Servlet将实现员工的增删改查

package web;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;


import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import Util.DAOFactory;

import Dao.EmpDAO;
import Dao.impl.EmpDAOJdbcImpl;
import entity.Emp;

public class ActionServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        //由于该Servlet要求处理所有的请求,因此必须判断出请求的来源
        //不同的来源业务有本质的区别,请求来源看规范
        req.setCharacterEncoding("UTF-8");
        String uri=req.getRequestURI();
        String path=uri.substring(uri.lastIndexOf("/"),uri.lastIndexOf("."));
        if(path.equals("/findEmp")){
            //查询所有员工
            findEmp(req,resp);
        }else if(path.equals("/addEmp")){
            //新增员工
            addEmp(req,resp);
        }else if(path.equals("/delEmp")){
            delEmp(req,resp);
            //删除员工
        }else if(path.equals("/loadEmp")){
            //加载员工
            loadEmp(req,resp);
        }else if(path.equals("/modifyEmp")){
            //修改一个员工信息
            modifyEmp(req,resp);
        }
    }
    
    protected void findEmp(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        //查询 全部员工
        EmpDAO dao=(EmpDAO)DAOFactory.getInstance("EmpDao");
        List list=dao.findAll();
        resp.setContentType("text/html;charset=UTF-8");
        PrintWriter out=resp.getWriter();
        //输出静态HTML
        //包含版本申明,根元素 head body table 等等
        
        out.println("");
        out.println("");
        out.println("");
        out.println("");
        out.println(" 员工原理列表");
        out.println("");
        out.println("");
        
        out.println("新增");
        out.println("");
        out.println("");
        out.println("");
        out.println("");
        out.println("");
        out.println("");
        out.println("");
        out.println("");
        
        for(Emp e:list){
            out.println("");
            out.println("");
            out.println("");
            out.println("");
            out.println("");
            out.println("");
            out.println("");
        }
        
        out.println("
编号姓名薪资年龄操作
"+e.getId()+""+e.getName()+""+e.getSalary()+""+e.getAge()+"删除" + " 修改
"); out.println(""); out.println(""); } protected void addEmp(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //获取对象 req.setCharacterEncoding("UTF-8"); String name=req.getParameter("name"); String salary=req.getParameter("salary"); String age=req.getParameter("age"); //封装对象 Emp emp=new Emp(); emp.setName(name); emp.setAge(Integer.parseInt(age)); emp.setSalary(Double.parseDouble(salary)); //保存 EmpDAO dao=new EmpDAOJdbcImpl(); dao.save(emp); //响应,输出提示信息 /* resp.setContentType("text/html;charset=utf-8"); PrintWriter out=resp.getWriter(); out.println("

新增成功

"); out.close();*/ //修改响应改为重定向 resp.sendRedirect("findEmp.do"); } protected void delEmp(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //获取参数 req.setCharacterEncoding("UTF-8"); String id=req.getParameter("id"); //删除员工 EmpDAO dao=new EmpDAOJdbcImpl(); dao.delete(Integer.parseInt(id)); //删除后需要 跳转到员工查询页面 //由于员工的查询和删除是两个独立的组件,可以使用重定向 resp.sendRedirect("findEmp.do"); } protected void loadEmp(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8" ); String id=req.getParameter("id"); EmpDAOJdbcImpl dao=new EmpDAOJdbcImpl(); Emp e=dao.findById(Integer.parseInt(id)); resp.setContentType("text/html;charset=utf-8"); PrintWriter out=resp.getWriter(); out.println("
"); out.println("
"); out.println("姓名:
"); out.println("年龄:
"); out.println("薪资:
"); out.println(""); out.println("
"); out.close(); } protected void modifyEmp(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); Emp e=new Emp(); e.setId(Integer.parseInt(req.getParameter("id"))); e.setAge(Integer.parseInt(req.getParameter("age"))); e.setSalary(Double.parseDouble(req.getParameter("salary"))); e.setName(req.getParameter("name")); EmpDAOJdbcImpl dao=new EmpDAOJdbcImpl(); dao.update(e); resp.sendRedirect("findEmp.do"); } }

你可能感兴趣的:(重构Servlet将实现员工的增删改查)