水果库存管理系统 进阶1 单sevlet版

水果库存管理系统 进阶1 单sevlet版

image-20220329104941719

上一个基础版,我们是写了好多个Servlet,然后每个不同的操作我们就去找到不同的Servlet去响应请求完成应答。这么写的逻辑好理解,但是如果代码量大了,就会显得比较乱,所以我们想,能否将所有的servlet整合到一个Servlet中呢?还真的可以。

Servlet改动

我们可以将所有servlet整合成一个大的FruitServlet,然后将原本那么多不同的servlet实现的功能写成FruitSerlet中的函数。

image-20220329110159581

首先第一步,创建一个FruitServlet,然后重写servlet方法:

request.setCharacterEncoding("UTF-8");

String operate = request.getParameter("operate");
if(StringUtil.isEmpty(operate)){
   
   
    operate = "index" ;
}

然后下面对这个operate进行判断:

switch(operate){
   
   
    case "index":
        index(request,response);
        break
    case "add":
        add(request,response);
        break;
    case "del":
        del(request,response);
        break;
    case "edit":
        edit(request,response);
        break;
    case "update":
        update(request,response);
        break;
    default:
        throw new RuntimeException("operate值非法!");

其实看这个FruitServlet就能大概理解一些,也就是FruitServlet会接受一个参数(方法名),然后根据这个参数判断要执行什么方法。

比如接收的参数为index,就执行index方法,接收的参数为add,就执行add方法。

所以我们要做的事也很简单,就是把原本不同servlet实现的功能写成FruitServlet中的不同函数。

比如说原本的UpdateServlet是这样的:

public class UpdateServlet extends ViewBaseServlet {
   
   

    private FruitDAO fruitDAO = new FruitDAOImpl();

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
   
   
        //1.设置编码
        request.setCharacterEncoding("utf-8");

        //2.获取参数
        String fidStr = request.getParameter("fid");
        Integer fid = Integer.parseInt(fidStr);
        String fname = request.getParameter("fname");
        String priceStr = request.getParameter("price");
        int price = Integer.parseInt(priceStr);
        String fcountStr = request.getParameter("fcount");
        Integer fcount = Integer.parseInt(fcountStr);
        String remark = request.getParameter("remark");

        //3.执行更新
        fruitDAO.updateFruit(new Fruit(fid,fname, price ,fcount ,remark ));

        //4.资源跳转
        //super.processTemplate("index",request,response);
        //request.getRequestDispatcher("index.html").forward(request,response);
        //此处需要重定向,目的是重新给IndexServlet发请求,重新获取furitList,然后覆盖到session中,这样index.html页面上显示的session中的数据才是最新的
        response.sendRedirect("index");
    }
}

那么现在就得将里面的实现代码,都迁移到FruitServlet的update函数中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值