JavaWeb - 模糊查询 + 分页

简介: JavaWeb - 模糊查询 + 分页

1.效果图

image.png

2.核心代码(12个一页)

<!--搜索--><formid="searchForm"method="post"action="/product/list.do"><divclass="search"><inputtype="hidden"name="page"value="1"><inputtype="text"name="title"class="search_input"value="${title}"><inputtype="submit"class="search_submit"value=""></div></form><!--分页--><div><%--<ahref="/product/list.do?page=1">首页</a>--%><%--<ahref="/product/list.do?page=${prePage}">上一页</a>--%><%--<ahref="/product/list.do?page=${nextPage}">下一页</a>--%><%--<ahref="/product/list.do?page=${totalPage}">尾页</a>--%><formmethod="post"action="/product/list.do"style="display: inline"><inputtype="hidden"name="page"value="1"><inputtype="hidden"name="title"value="${title}"><inputtype="submit"value="首页"class="btn"></form><formmethod="post"action="/product/list.do"style="display: inline"><inputtype="hidden"name="page"value="${prePage}"><inputtype="hidden"name="title"value="${title}"><inputtype="submit"value="上一页"class="btn"></form><formmethod="post"action="/product/list.do"style="display: inline"><inputtype="hidden"name="page"value="${nextPage}"><inputtype="hidden"name="title"value="${title}"><inputtype="submit"value="下一页"class="btn"></form><formmethod="post"action="/product/list.do"style="display: inline"><inputtype="hidden"name="page"value="${totalPage}"><inputtype="hidden"name="title"value="${title}"><inputtype="submit"value="尾页"class="btn"></form>第${curPage}/共${totalPage}</div><!--响应内容省略-->
packagecom.imooc.cart.servlet;
importcom.imooc.cart.data.LocalCache;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjava.io.IOException;
/*** 商品(课程)控制器* @version 1.0*/publicclassProductServletextendsHttpServlet {
@Overrideprotectedvoidservice(HttpServletRequestreq, HttpServletResponseresp) throwsServletException, IOException {
Stringname=req.getParameter("title");
StringpageStr=req.getParameter("page");
intpage=1;
if (null!=pageStr&&!"".equals(pageStr)) {
page=Integer.parseInt(pageStr);
        }
inttotalProducts=LocalCache.getProductsCount(name);
inttotalPage=totalProducts%12>0?totalProducts/12+1 : totalProducts/12;
req.setAttribute("curPage", page);
req.setAttribute("prePage", page>1?page-1 : 1);
req.setAttribute("nextPage", totalPage>page?page+1 : totalPage);
req.setAttribute("totalPage", totalPage);
req.setAttribute("title", name);
req.setAttribute("products", LocalCache.getProducts(page, 12, name));
req.getRequestDispatcher("/WEB-INF/views/biz/list.jsp").forward(req, resp);
    }
}
packagecom.imooc.cart.data;
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
/*** 本地缓存* @version 1.0*/publicfinalclassLocalCache {
privatestaticMap<Long, Product>productMap=newHashMap<>();
// 省略...publicstaticList<Product>getProducts(intpage, intsize, Stringname) {
List<Product>products=newArrayList<>();
if (null!=name&&!"".equals(name)) {
productMap.values().forEach(product-> {
if (product.getName().contains(name)) {
products.add(product);
                }
            });
        } else {
products.addAll(productMap.values());
        }
intstart= (page-1) *size;
intend=products.size() >=page*size?page*size : products.size();
returnproducts.subList(start, end);
    }
publicstaticintgetProductsCount(Stringname) {
List<Product>products=newArrayList<>();
if (null!=name&&!"".equals(name)) {
productMap.values().forEach(product-> {
if (product.getName().contains(name)) {
products.add(product);
                }
            });
        } else {
products.addAll(productMap.values());
        }
returnproducts.size();
    }
}

3.待更新...

目录
相关文章
|
2月前
|
Java 程序员 调度
Java|PageHelper 怎么自作主张帮我分页?
没有调用 PageHelper.startPage,查询怎么也被自动分页了?
17 2
|
3月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
483 37
|
2月前
|
前端开发 Java 应用服务中间件
Javaweb学习
【10月更文挑战第1天】Javaweb学习
37 2
|
2月前
|
安全 Java Android开发
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
72 5
|
3月前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
3月前
|
安全 Java Android开发
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
124 2
|
3月前
|
SQL JSON JavaScript
JavaWeb基础9——VUE,Element&整合Javaweb的商品管理系统
Vue 指令、生命周期、this和$、vue脚手架进行模块化开发/ElementUI框架、综合案例,element商品列表展示增删改查
JavaWeb基础9——VUE,Element&整合Javaweb的商品管理系统
|
5月前
|
存储 程序员
JavaWeb之Listener监听器
JavaWeb之Listener监听器
91 0
|
6月前
|
SQL 缓存 Java
Java框架之MyBatis 07-动态SQL-缓存机制-逆向工程-分页插件
Java框架之MyBatis 07-动态SQL-缓存机制-逆向工程-分页插件
|
6月前
|
前端开发 JavaScript 算法
javaweb(四)——过滤器与监听器
javaweb(四)——过滤器与监听器
下一篇
DataWorks