JSP
-
dao包里创建对象,使用static属性创建公用对象,实现数据持久
-
所有跳转页面通过后台去跳转(动态页面通过后台跳转)
通过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 展示数据
-
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"); }