Day19JavaWeb【旅游项目】 分类与分页的后台代码***

学习目标

  • (1)按分类显示路线数据
  • (2)按详情显示路线
  • (3)后台最核心的还是业务方法与sql
  • (4)前台最核心的是$(“#”) 拼接 html()函数修改内容

分类与分页的分析

在这里插入图片描述

分类与分页的后台代码

RouteServiceTest

   @Test
    public void test02() throws JsonProcessingException {
    
    
        //业务对象
        RouteService  routeService = new RouteService();
        //根据指定分类 cid 1 查找路线,但是路线记录需要使用分页来显示 currentPage1  pageSize20
        PageBean pb = routeService.findPageByCid(1,1,20);
        //生成json
        ResponseInfo responseInfo = new ResponseInfo();
        responseInfo.setCode(200);
        responseInfo.setData(pb);
        String json = new ObjectMapper().writeValueAsString(responseInfo);
        System.out.println(json);
    }

RouteService

 public PageBean findPageByCid(int cid, int currentPage, int pageSize) {
    
    
        //给pageBean的四个整数与一个集合 查找值
        PageBean pb = new PageBean();
        //设置当前页号
        pb.setCurrentPage(currentPage);//1*
        //设置每页记录数
        pb.setPageSize(pageSize);//2
        //设置总记录数
        RouteDao routeDao = MySessionUtils2.getMapper(RouteDao.class);

        int totalCount = routeDao.findCountByCid(cid);
        pb.setTotalCount(totalCount);//3*

        int totalPage = totalCount % pageSize == 0 ? totalCount / pageSize : totalCount / pageSize + 1;
        pb.setTotalPage(totalPage);//4*

        int start = (currentPage - 1) * pageSize;
        List<Route> list = routeDao.findPageByCid(cid, start, pageSize);
        pb.setList(list);//集合
        return pb;
    }

RouteDao

  //select count(*) from tab_route where cid = 1;
    int findCountByCid(int cid);

    //select * from tab_route where cid = 5 limit 40,20;
    List<Route> findPageByCid(int cid, int start, int pageSize);
    <select id="findCountByCid" parameterType="int" resultType="int">
        select count(*) from tab_route where cid = #{cid};
    </select>
    <select id="findPageByCid"  resultType="route">
       select * from tab_route where cid = #{arg0} limit #{arg1},#{arg2};
    </select>

Route2Servlet


//http://localhost:8080/lvyou_war_exploded/route2Servlet?cid=5&currentPage=1&pageSize=20
@WebServlet("/route2Servlet")
public class Route2Servlet extends HttpServlet {
    
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
            doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    

        //1 接收请求,获取参数
        String  cidStr = request.getParameter("cid");
        String  currentPageStr = request.getParameter("currentPage");
        String  pageSizeStr = request.getParameter("pageSize");

        int cid = 0; //"1"  1 "你好" 异常
        try {
    
    
            cid = Integer.parseInt(cidStr);
        } catch (NumberFormatException e) {
    
    
            e.printStackTrace();
        }
        int currentPage = 1; //"1"  1 "你好" 异常
        try {
    
    
            currentPage = Integer.parseInt(currentPageStr);
        } catch (NumberFormatException e) {
    
    
            e.printStackTrace();
        }
        int pageSize = 20 ;
        try {
    
    
            pageSize = Integer.parseInt(pageSizeStr);
        } catch (NumberFormatException e) {
    
    
            e.printStackTrace();
        }
        //2 处理参数
        //业务对象
        RouteService  routeService = new RouteService();
        //根据指定分类 cid 1 查找路线,但是路线记录需要使用分页来显示 currentPage1  pageSize20
        PageBean pb = routeService.findPageByCid(cid,currentPage,pageSize);
        //生成json
        ResponseInfo responseInfo = new ResponseInfo();
        responseInfo.setCode(200);
        responseInfo.setData(pb);
        String json = new ObjectMapper().writeValueAsString(responseInfo);
        //3 响应浏览器

        response.getWriter().println(json);

    }
}

猜你喜欢

转载自blog.csdn.net/u013621398/article/details/108936732