Servlrt练习

该博客主要展示了如何使用Servlet进行HTTP请求处理,包括GET和POST方法的覆盖。在后台,它利用了EmpService接口的实现类来获取和删除员工数据。当接收到查询请求时,通过Fastjson将查询结果转换为符合Layui要求的JSON格式返回给前端。对于删除操作,删除指定ID的员工后,会重定向到成员列表页面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Servlrt练习

/**
 *  用于业务层与前端的交互
 */
@WebServlet("/empServlet")
public class EmpServlet extends HttpServlet {
    EmpServiceImpl empService = new EmpServiceImpl();

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }
    /**
     * 前端有json对象,但后台没有,需要通过第三方工具实现(阿里的fastjson,谷歌提供Gson)
     * @param req
     * @param resp
     * @throws ServletException
     * @throws IOException
     */
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置返回类型及编码
        resp.setContentType("text/html;charset=utf8");
        PrintWriter out = resp.getWriter();
        ResponseResult responseResult = new ResponseResult();
        String option = req.getParameter("option");
        if (option.equals("query")) {
            queryEmpList(out, responseResult);
        } else if ("del".equals(option)) {
            String eno = req.getParameter("eno");
            delEmp(Integer.valueOf(eno), resp);
            out.close();
        }
    }

    /**
     * 查询功能
     * @param out
     * @param responseResult
     */
    public void queryEmpList(PrintWriter out,ResponseResult responseResult){
    //从业务层获取数据
   List<Emp> empList= empService.queryEmpList();
    //1.layui的数据渲染要求有固定的数据格式
    Map<String,Object> map=responseResult.success(empList);
    //将数据以json字符串的形式返回出去
       // String jsonStr = JSON.toJSONStringWithDateFormat(map,"yyyy-MM-dd");
    String jsonStr= JSON.toJSONStringWithDateFormat(map,"yyyy-MM-dd");
    //通过输出流返回给前端
   out.write(jsonStr);

    }


    /**
     * 删除员工信息
     * @param eno
     */
    public void delEmp(int eno,HttpServletResponse resp) throws IOException {
     empService.deleteEmp(eno);
     resp.sendRedirect("member-list.jsp");
    }

}

public class ResponseResult {
    private int code;
    private String msg;
    private Map<String,Object> map=new HashMap<>();
    public  ResponseResult(){
        map.put("code",0);
        map.put("msg","success");
    }
    public Map<String,Object> success(){
      map.put("count",0);
      map.put("data",null);
      return map;
    }

    public Map<String,Object> success(List<?> data){
        map.put("count",data.size());
        map.put("data",data);
        return map;
    }

    public Map<String,Object> error(int code,String msg){
       map.put("code",code);
       map.put("msg",msg);
       map.put("count",0);
       map.put("data",null);
       return map;
    }

}

/**
 *  用于业务层与前端的交互
 */
@WebServlet("/empServlet")
public class EmpServlet extends HttpServlet {
    EmpServiceImpl empService = new EmpServiceImpl();

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }
    /**
     * 前端有json对象,但后台没有,需要通过第三方工具实现(阿里的fastjson,谷歌提供Gson)
     * @param req
     * @param resp
     * @throws ServletException
     * @throws IOException
     */
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置返回类型及编码
        resp.setContentType("text/html;charset=utf8");
        PrintWriter out = resp.getWriter();
        ResponseResult responseResult = new ResponseResult();
        String option = req.getParameter("option");
        if (option.equals("query")) {
            queryEmpList(out, responseResult);
        } else if ("del".equals(option)) {
            String eno = req.getParameter("eno");
            delEmp(Integer.valueOf(eno), resp);
            out.close();
        }
    }

    /**
     * 查询功能
     * @param out
     * @param responseResult
     */
    public void queryEmpList(PrintWriter out,ResponseResult responseResult){
    //从业务层获取数据
   List<Emp> empList= empService.queryEmpList();
    //1.layui的数据渲染要求有固定的数据格式
    Map<String,Object> map=responseResult.success(empList);
    //将数据以json字符串的形式返回出去
       // String jsonStr = JSON.toJSONStringWithDateFormat(map,"yyyy-MM-dd");
    String jsonStr= JSON.toJSONStringWithDateFormat(map,"yyyy-MM-dd");
    //通过输出流返回给前端
   out.write(jsonStr);

    }


    /**
     * 删除员工信息
     * @param eno
     */
    public void delEmp(int eno,HttpServletResponse resp) throws IOException {
     empService.deleteEmp(eno);
     resp.sendRedirect("member-list.jsp");
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值