怎样把web中增删查改的多个servlet合并在一起

解决思路:

(1)建一个总的servlet类,把其他类的中的doget方法都集中到这个类中,
 private void updateEmp(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        request.setCharacterEncoding("utf-8");
        //获取参数
        Map<String, String[]> map = request.getParameterMap();
        //注册器
        ConvertUtils.register(new Converter() {

            public Object convert(Class type, Object value) {
                String o = (String) value;
                DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
                try {
                    return LocalDate.parse(o, formatter);
                } catch (Exception e) {

                    e.printStackTrace();
                }
                return null;
            }
        }, LocalDate.class);

        Emp emp = new Emp();
        try {
            BeanUtils.populate(emp, map);
        } catch (Exception e) {
            e.printStackTrace();
        }

        //调用业务层处理数据
        EmpService empService = new EmpServiceImpl();
        boolean b = empService.updateEmp(emp);

        //响应数据
        if (b) {
            //成功,请求转发到查询所有
            request.getRequestDispatcher("/adapter?flag=selectAllEmp").forward(request, response);

        } else {
            response.getWriter().write("save failed");
        }
    }

    /**
     * 查询所有
     *
     * @param request
     * @param response
     * @throws IOException
     * @throws ServletException
     */
    private void selectAllEmp(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {


        EmpService empService = new EmpServiceImpl();
        List<Emp> emps = empService.selectAllEmp();
        if (emps.size() > 0) {
            request.setAttribute("emps", emps);
            request.getRequestDispatcher("/listUser.jsp").forward(request, response);
        } else {
            response.getWriter().write("data is empty");
        }
    }
(2)获取参数"flag",通过flag的值调用不同的方法
(3)每一个访问服务器的请求都要带一个键flag参数,服务器根据参数值分配方法
(4)代码实现

@WebServlet("/adapter")
public class Servlet extends HttpServlet {
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        //获取参数
        String flag = request.getParameter("flag");
        if (flag.length() > 0 && flag != null) {
            if (flag.equals("delete")) {
                //如果是delete,那就调用删除的方法
                delete(request, response);
            } else if (flag.equals("login")) {
                //如果是login,那就调用注册的方法
                login(request, response);

            } else if (flag.equals("findOne")) {
                //如果是findOne,那就调用查询一个的方法
                findOne(request, response);

            } else if (flag.equals("saveEmp")) {
                //如果是saveEmp,那就调用插入的方法
                saveEmp(request, response);
            } else if (flag.equals("selectAll")) {
                //如果是selectAll,那就调用查询所有的方法
                selectAll(request, response);
            } else if (flag.equals("updateEmp")) {
                //如果是 updateEmp,那就调用更新所有的方法
                updateEmp(request, response);
            } else if (flag.equals("selectAllEmp")) {
                selectAllEmp(request, response);
            }
        }
    }

注意

(1)请求如果是post请求,那就用input标签的隐藏

<form method="post" class="form-x" action="/emp02/adapter">
      <input type="hidden" name="flag" value="saveEmp">
 </form>

(2)请求中多参的传法:url?键1=值1&键2=值2,注意中间不要有空格

  <a class="button border-main" href='/emp02/adapter?eid=${emp.eid}&flag=findOne'/>
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值