二〇二三-三-九——JSP页面跳转

文章描述了一个基于JavaServlet的网页跳转和数据处理流程。在JSP中,通过后台Servlet实现数据的查询、更新和删除操作,不直接在JSP页面间跳转,而是通过Servlet进行控制。例如,从/show页面获取数据并显示在/show.jsp,然后通过/goServlet跳转到/update.jsp进行修改,最后通过UpdateServlet处理更新并返回到/show页面展示最新数据。
摘要由CSDN通过智能技术生成

JSP

  1. dao包里创建对象,使用static属性创建公用对象,实现数据持久

  2. 所有跳转页面通过后台去跳转(动态页面通过后台跳转)

    通过servlet里的java代码实现页面跳转jsp,不直接跳转至jsp页面

    //localhost:8080/show
    @WebServlet("/show")
    public class ShowServlet extends HttpServlet {
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
            BrandService brandService = new BrandService();
            BrandDao.brandModelList = brandService.findAll();
            req.setAttribute("brandModelList", BrandDao.brandModelList);
            req.getRequestDispatcher("/show.jsp").forward(req, resp); //跳转show.jsp页面
        }
    }
    
    //localhost:8080/show.jsp
    <td>
      <a href="/go?id=${model.id}">修改</a>
      <a href="/delete?id=${model.id}">删除</a>
    </td>	//跳转至后台servlet,这里选择跳转 修改 页面
    
    @WebServlet("/go") //该页面获取show.jsp中的值,然后跳转update.jsp页面,jsp页面不直接跳转jsp页面,必须通过servlet进行跳转
    public class GoUpdatePageServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            req.setCharacterEncoding(StandardCharsets.UTF_8.toString());
            resp.setCharacterEncoding(StandardCharsets.UTF_8.toString());
    //        1. 得到前端的值
            String id = req.getParameter("id");
    //        2. 封装到model
            BrandModel model = new BrandModel();
            model.setId(Tool.strToInt(id));
    //        3. 调用服务层逻辑
            BrandService brandService = new BrandService();
    //        4. 得到返回值结果
            BrandModel brandModel = brandService.findById(model);
    //        5. 返回结果到jsp页面
            req.setAttribute("brandModel",brandModel);
            req.setAttribute("id",id);
            req.getRequestDispatcher("/update.jsp").forward(req,resp); //跳转update.jsp进行修改操作
        }
    }
    
    //localhost:8080/update.jsp
    <form action="/update" method="post"> //跳转UpdateServlet进行数据修改
    
    //UpdateServlet.java
    resp.sendRedirect("/show"); //修改完成后通过调用 ShowServlet 跳转到 show.jsp 展示数据
    
  3. servlet处理jsp数据流程:

    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //        1.乱码处理
            req.setCharacterEncoding(StandardCharsets.UTF_8.toString());
            resp.setCharacterEncoding(StandardCharsets.UTF_8.toString());
    //        2.接收数据
            String name = req.getParameter("name");
            String enterprise = req.getParameter("enterprise");
            String sort = req.getParameter("sort");
            String introduction = req.getParameter("introduction");
            String status = req.getParameter("status");
    //        3.封装对象
            BrandModel brandModel = BrandModel.builder()
                    .name(name)
                    .enterprise(enterprise)
                    .sort(Tool.strToInt(sort))
                    .introduction(introduction)
                    .status(Tool.strToInt(status))
                    .build();
    //        4.处理逻辑关系
            BrandService brandService = new BrandService();
    //        5.得到逻辑处理后的返回值
            String result = brandService.add(brandModel);
    //        6.转发数据
            req.setAttribute("result",result);
            resp.sendRedirect("/show");
        }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值