JavaWeb实现查询功能

写在前面
       你们好,我是小庄。很高兴能和你们一起学习JavaWeb。如果您对Java感兴趣的话可关注我的动态.
    写博文是一种习惯,在这过程中能够梳理知识和巩固知识点。

需求:当搜索框为空时,查询数据库所有商品,输入商品名时,进行模糊查询

实现思路:运用表单提交的方式访问Servlet,然后将输入的值传到后台,运用sql语句对数据库进行查询。
具体来看代码吧!

搜索框代码

<div class="sousuo">
        
        <form action="${ctx}/chaXun" methed="get">
            <input type="text" id="input" autocomplete="off" name="productName"  title="请输入商品名">
            <input type="submit" id="sousuo_kuan" value="搜索">    
        </form>    
</div>
<!--使用盒子存放查询到的结果-->
<div class="bigbox"><!--这是大盒子-->
        <c:forEach var="item" items="${list}" varStatus="aa">
        <div class="minbox"><!--这是小盒子-->            
                <span class="imgLink">
                <a href="${ctx }/ProductDetailsServlet?id=${item.id }" ><img src="${item.imgUrl}" /></a>            
                </span>            
        <p class="price">
                <span class="pricedetail">
                ¥
                <strong>${item.price }</strong>
                </span>
                <span class="postalicon">包邮</span>                
                </p>
                <p class="shopName">
                </p>
            </div>
        </div>
    </c:forEach>
    </div>


autocomplete="off"表示规定输入字段不启用自动完成功能

点击搜索按钮时就到了后台

下面是Servlet代码

          

 //进行编码为utf-8
            request.setCharacterEncoding("utf-8");
            response.setCharacterEncoding("utf-8");
            //获取Session对象
            HttpSession session=request.getSession();
            //创建ProductService类
            ProductService service=new ProductService();        
            String productName=request.getParameter("productName");
            //调用ProductService类的方法
            List<Product> list=service.getUserList(productName);
            //通过商品名遍历商品列表
            for(Product pro:list) {
            //获取商品Id
            int productId=pro.getId();
            //将商品ID存到Session中
            session.setAttribute("productId", productId);
            }
            //将商品信息存到Request中
            request.setAttribute("list", list);
            //进行页面跳转
            request.getRequestDispatcher("/test/findProduct.jsp").forward(request, response);


然后到Service层

   

 /*
     * 通过商品名查询,如果为空则返回所有
     */
    public List<Product> getUserList(String productName){
        
        List<Product> result = null;
        //输入的内容是否为空进行判断,如果为空,就返回所有
        if(productName  == null || productName.trim().equals("")) {
            //查询所有商品
                result =  dao.findAll();
            return result;
        }
        //查询模糊查询商品
            result = (List<Product>) this.dao.getProductName(productName);
        return result;
    }


最后到Dao层

/*
     * 查询所有商品
     */
    public List<Product> findAll(){
        List<Product> list=null;
        String sql="select * from product";
        try {
            list = (List<Product>) runner.query(sql, new BeanListHandler(Product.class));
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    return list;
    
}    
    
    /*
     * 根据商品名模糊查询
     */
    public List<Product> getProductName(String productName){
        List<Product> list=null;
        String sql="select * from product where productName like ?";
        try {
            list=(List<Product>) runner.query(sql, new BeanListHandler(Product.class),"%"+productName+"%");
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return list;
    }


查询功能就这样实现了。记得点赞哦!您的点赞是我写作的动力

  • 51
    点赞
  • 233
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
以下是JavaWeb实现购物车功能的基本步骤和代码示例: 1. 创建商品类和购物车项类 ```java public class Product { private int id; // 商品ID private String name; // 商品名称 private double price; // 商品价格 // 省略getter和setter方法 } public class CartItem { private Product product; // 商品 private int quantity; // 数量 // 省略getter和setter方法 } ``` 2. 创建购物车类 ```java public class Cart { private Map<Integer, CartItem> items = new HashMap<>(); // 购物车项集合 private double total; // 总金额 // 添加商品到购物车 public void add(Product product, int quantity) { CartItem item = items.get(product.getId()); if (item == null) { item = new CartItem(); item.setProduct(product); item.setQuantity(quantity); items.put(product.getId(), item); } else { item.setQuantity(item.getQuantity() + quantity); } total += product.getPrice() * quantity; } // 删除购物车中的商品 public void remove(int productId) { CartItem item = items.remove(productId); if (item != null) { total -= item.getProduct().getPrice() * item.getQuantity(); } } // 获取购物车中的所有商品 public List<CartItem> getItems() { return new ArrayList<>(items.values()); } // 获取购物车中的总金额 public double getTotal() { return total; } } ``` 3. 在Servlet中使用购物车类 ```java public class CartServlet extends HttpServlet { private Cart cart = new Cart(); // 创建购物车对象 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String action = request.getParameter("action"); if ("add".equals(action)) { int productId = Integer.parseInt(request.getParameter("productId")); int quantity = Integer.parseInt(request.getParameter("quantity")); Product product = getProductById(productId); cart.add(product, quantity); response.sendRedirect("cart.jsp"); } else if ("remove".equals(action)) { int productId = Integer.parseInt(request.getParameter("productId")); cart.remove(productId); response.sendRedirect("cart.jsp"); } else { request.setAttribute("cart", cart); request.getRequestDispatcher("cart.jsp").forward(request, response); } } // 根据商品ID获取商品对象 private Product getProductById(int productId) { // 省略代码 } } ``` 以上就是JavaWeb实现购物车功能的基本步骤和代码示例。如果您有任何疑问,请随时提出。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值