分析


对原用的分页查询进行修改,添加rname字段,对原有的方法进行修改.

  • Servlet
/*** 分页查询** @param request* @param response* @throws ServletException* @throws IOException*/public void pageQuery(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//接收参数String currentPageStr = request.getParameter("currentPage");String pageSizeStr = request.getParameter("pageSize");String cidStr = request.getParameter("cid");//接收rnameString rname = request.getParameter("rname");//转码rname = new String(rname.getBytes("iso-8859-1"), "utf-8");//处理参数,并设置默认值int cid = 0;if (cidStr != null && cidStr.length() > 0 && !"null".equals(cidStr)) {cid = Integer.parseInt(cidStr);}int pageSize = 5;if (pageSizeStr != null && pageSizeStr.length() > 0) {pageSize = Integer.parseInt(pageSizeStr);}int currentPage = 1;if (currentPageStr != null && currentPageStr.length() > 0) {currentPage = Integer.parseInt(currentPageStr);}//调用ServicePageBean<Route> routePageBean = routeService.pageQuery(cid, currentPage, pageSize, rname);writeValue(routePageBean, response);}

获取rname数据,转换编码为UTF-8.预防恶意访问,进行数据的默认值设置.
存在漏洞:cid必须是数字,需要进行数字校验.

  • Service
@Overridepublic PageBean<Route> pageQuery(int cid, int currentPage, int pageSize, String rname) {//创建PageBeanPageBean<Route> pb = new PageBean<>();//注入当前页码pb.setCurrentPage(currentPage);//注入每页显示条数pb.setPageSize(pageSize);//查询总记录数int totalCount = routeDao.findTotalCount(cid, rname);//注入总记录数pb.setTotalCount(totalCount);//计算开始索引int start = (currentPage - 1) * pageSize;//查询集合数据List<Route> list = routeDao.findByPage(cid, start, pageSize, rname);//注入显示数据pb.setList(list);//计算总页码int totalPage = totalCount % pageSize != 0 ? (totalCount / pageSize) + 1 : totalCount / pageSize;//注入总页码pb.setTotalPage(totalPage);//返回PageBeanreturn pb;}

对PageBean进行数据装配,计算数据并调用dao方法进行获取数据.注入PageBean中返回

  • Dao
@Overridepublic Integer findTotalCount(int cid, String rname) {//        String sql = "select count(*) from tab_route where cid=? and rname like ?";String sql = "select count(*) from tab_route where 1=1 ";StringBuilder sb = new StringBuilder(sql);List params = new ArrayList<>();if (cid != 0) {sb.append(" and cid=? ");params.add(cid);}if (rname != null && !"".equals(rname) && !"null".equals(rname)) {sb.append(" and rname like ?");params.add("%" + rname + "%");}sql = sb.toString();return template.queryForObject(sql, Integer.class, params.toArray());}@Overridepublic List<Route> findByPage(int cid, int start, int pageSize, String rname) {//        String sql = "select * from tab_route where cid=? limit ?,?  ";String sql = "select * from tab_route where 1=1 ";StringBuilder sb = new StringBuilder(sql);List params = new ArrayList();if (cid != 0) {sb.append(" and cid=? ");params.add(cid);}if (rname != null && !"".equals(rname) && !"null".equals(rname)) {sb.append(" and rname like ? ");params.add("%" + rname + "%");}sb.append(" limit ?,? ");params.add(start);params.add(pageSize);sql = sb.toString();return template.query(sql, new BeanPropertyRowMapper<>(Route.class), params.toArray());}

根据传入的数据,进行判断拼接,进行查询.原因:(因为存在没有搜索rname和分类cid的查询)

旅游网小案例:旅游线路名称查询相关推荐

  1. 旅游网小案例:注册(邮件激活)

    注册 分析 前端js //当表单提交时,调用所有的校验方法$("#registerForm").submit(function () {//表单校验if (checkUsernam ...

  2. 旅游网项目案例以及源码

    旅游网案例 技术选型 Web层 Servlet:前端控制器 html:视图 Filter:过滤器 BeanUtils:数据封装 Jackson:json序列化工具 Service层 Javamail: ...

  3. java旅游网项目_基于jsp的旅游网-JavaEE实现旅游网 - java项目源码

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的旅游网, 该项目可用各类java课程设计大作业中, 旅游网的系统架构分为前后台两部分, 最终实现在线上进行旅游网各 ...

  4. 综合项目 旅游网 【4.旅游线路名称查询-参数传递】

    目录 查询参数的传递 route_list.html4.0代码 header.html2.0代码 修改后台代码 RouteServlet之前 RouteDaoImpl1.0 改进后的RouteDaoI ...

  5. 02.javaWeb旅游网小项目【注册功能】

    用户注册模块 1.实现注册功能 1)注册功能(前台页面) 前台注册页面注册校验成功 使用异步交互(JQuery-ajax) 点击注册 将当前提交内容从后台数据库查询是否存在 $(function () ...

  6. php 旅游网毕业论文,某旅游网站的设计与实现.docx

    摘要:旅游在当今社会也是越来越流行,出门玩耍,旅游,无疑也是人们比较好的一个选择,旅游业的竞争也是相当大,格式各样的旅游网站也是层出不穷,本网站是源于生活,源于人们的需求而设计的具有一定功能的广安旅游 ...

  7. 云场景实践研究第7期:驴妈妈旅游网

    更多云场景实践研究案例,点击这里:[云场景实践研究合集]联合不是简单的加法,而是无限的生态,谁会是下一个独角兽 在驴妈妈旅游网成立初期,整体系统最初采用的是ALL IN ONE架构,服务器和数据库数量 ...

  8. 点石互动--石头之:张家界国际旅游网点评

    点石互动  石头 发表于 03月 27, 2007 为了探讨和研究国内5A级旅游景点信息化建设,国内旅游信息化研究博客-智旅动力发起了5A评论.从搜索引擎.站点的营运策划和用户体验等多角度进行思考.本 ...

  9. HTML5期末大作业:关于旅游网站设计----- 洪江市旅游网 HTML+CSS+JavaScript

    HTML5期末大作业:关于旅游网站设计----- 洪江市旅游网 HTML+CSS+JavaScript 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从下手? ...

最新文章

  1. 几个.Net开源的CMS系统 (转)
  2. jQuery.ready in CRM Fiori Opportunity Application
  3. Ubuntu 16.04 安装 cuda 7.5.run BEGIN failed--compilation aborted at ./cuda-installer.pl line 5
  4. 剑指offer python实现_剑指Offer第2题详解(附Python、Java代码实现)
  5. Bootstrap3 栅格系统之列排序
  6. es6 Class 不存在变量提升
  7. 大数据_Hbase-内容回顾_知识点补充_线程安全与wait的区别---Hbase工作笔记0019
  8. Learning Shape Priors for Single-View 3D Completion and Reconstruction
  9. 线路速度之实战***
  10. ubuntu中的Linux安装程序的方法
  11. Android SurfaceFlinger vsync信号产生与分发
  12. matlab做聚类分析(简单的直接用clusterdata)
  13. 鼠标自动点击工具鼠标连点器鼠标定时自动点击使用方法
  14. scratch少儿编程航天主题:认识太阳系-八大行星连连看
  15. 计算机网络速度慢原因,上网网速变慢的几个原因及解决方法
  16. 为何有好多网站不常用table和iframe这两个元素?
  17. netlink实现驱动和应用层通信
  18. NEXTCHIP-图像优化师
  19. 应用层 DNS域名解析服务器 文件传送协议FTP 简单邮件传送协议SMTP 万维网 HTTP超文本协议
  20. 影子系统、沙盒、虚拟机

热门文章

  1. smurf分布式攻击(DDOS)
  2. 主和取范式与主析取范式
  3. 基本农田卫星定位图_多种全球定位导航系统的对比,信号及频谱分布
  4. 搜狗日志Hive数据分析
  5. 主动移频式matlab仿真,一种新颖的主动移频式孤岛检测方法
  6. Ubuntu手动安装pymysql(含pymysql的.whl及.tar.gz下载地址)
  7. scratch实现猫捉老鼠(上)
  8. ubuntu16.04安装wechat
  9. android ios耳机转换器,苹果新iPad Pro转向USB-C,那附带的音频线安卓手机能用么
  10. swf批量转png_万万没想到,利用这些批量处理的PPT技巧,同事都看呆了