实现一:
大前提:商城只卖四种商品(book,clothes,electric,snack),要在首页上分四行分别显示这四种商品;
先上一个效果图:

实现类:
Product.java
BooksDaoImpl.java(接口BooksDao.java)
ClothesDaoImpl.java(接口ClothesDao.java)
ElectricDaoImpl.java(接口ElectricDao.java)
SnacksDaoImpl.java(接口SnacksDao.java)
IndexProductsServlet.java
index.jsp
代码、相关功能实现及描述如下:

Product.java
【一个java bean,存放商品属性以及getter、setter方法】

import java.io.Serializable;public class Product implements Serializable {private static final long serialVersionUID = 1L;private Integer id;private String name;private String title;private double price;private String imgURL;private String manufacture;private Integer counts;private double countBack;private double cashBack;public double getCashBack() {return cashBack;}public void setCashBack(double cashBack) {this.cashBack = cashBack;}public double getCountBack() {return countBack;}public void setCountBack(double countBack) {this.countBack = countBack;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public String getImgURL() {return imgURL;}public void setImgURL(String imgURL) {this.imgURL = imgURL;}public String getManufacture() {return manufacture;}public void setManufacture(String manufacture) {this.manufacture = manufacture;}public Integer getCounts() {return counts;}public void setCounts(Integer counts) {this.counts = counts;}
}

BooksDaoImpl.java
(接口BooksDao.java)【操作数据库,在该项目中是查询商品ClothesDaoImpl.java、ElectricDaoImpl.java、SnacksDaoImpl.java类似,代码略】

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.ymw.domain.PageBean;
import com.ymw.domain.Product;
import com.ymw.domain.User;
import com.ymw.exception.DataBaseException;
import com.ymw.util.DBUtil;
/*** 执行数据查询*  *在selectAllBooks方法中查询所有商品; **/
public class BooksDaoImpl implements BooksDao {@Overridepublic List<Product> selectAllBooks() {List<Product> books = new ArrayList<Product>();Connection connection = DBUtil.getConnection();PreparedStatement preparedStatement = null;ResultSet resultSet = null;try {String sql = "select * from books";preparedStatement = connection.prepareStatement(sql);resultSet = preparedStatement.executeQuery();while (resultSet.next()) {Product book = new Product();book.setCounts(resultSet.getInt("counts"));book.setId(resultSet.getInt("id"));book.setImgURL(resultSet.getString("imgURL"));book.setManufacture(resultSet.getString("manufacture"));book.setName(resultSet.getString("name"));book.setPrice(resultSet.getDouble("price"));book.setTitle(resultSet.getString("title"));books.add(book);}} catch (SQLException e) {throw new DataBaseException();} catch (Exception e) {e.printStackTrace();} finally {}return books;}
}

IndexProductsServlet.java
【连接数据库操作和显示】

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.ymw.exception.DataBaseException;
import com.ymw.dao.BooksDao;
import com.ymw.dao.BooksDaoImpl;
import com.ymw.dao.ClothesDao;
import com.ymw.dao.ClothesDaoImpl;
import com.ymw.dao.ElectricDao;
import com.ymw.dao.ElectricDaoImpl;
import com.ymw.dao.SnacksDao;
import com.ymw.dao.SnacksDaoImpl;
import com.ymw.domain.Product;
/*** * 调用*DaoImpl中的方法查询回所有的商品,然后进行页面跳转**/
public class IndexProductsServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {BooksDao bookDao = new BooksDaoImpl();ClothesDao clothesDao = new ClothesDaoImpl();ElectricDao electricDao = new ElectricDaoImpl();SnacksDao snacksDao = new SnacksDaoImpl();try {List<Product> books = bookDao.selectAllBooks();List<Product> clothes = clothesDao.selectAllClothes();List<Product> electric = electricDao.selectAllElectric();List<Product> snacks = snacksDao.selectAllSnacks(); request.setAttribute("books", books);request.setAttribute("clothes", clothes);request.setAttribute("electric", electric);request.setAttribute("snacks", snacks);     request.getRequestDispatcher("index.jsp").forward(request, response);} catch (DataBaseException e) {e.printStackTrace();request.getRequestDispatcher("dataBase.jsp").forward(request,response);} catch (Exception e) {e.printStackTrace();request.getRequestDispatcher("error.jsp").forward(request, response);}}
}

index.jsp
(主要代码)【在该jsp中使用了(c:forEach)的几个属性展示出每种id从1到6的商品,这种方法有点死板,在这个功能上可以生成相应范围内的六个随机数来作为要展示的每种商品的Id】

<%List<Product> books = (List<Product>) request.getAttribute("books");List<Product> clothes = (List<Product>) request.getAttribute("clothes");List<Product> electric = (List<Product>) request.getAttribute("electric");List<Product> snacks = (List<Product>) request.getAttribute("snacks");if (books != null || clothes != null || electric != null || snacks != null) {
%>
<div class="main"><div class="hot"><h2>今日特价</h2><ul class="product clearfix"><c:forEach var="book" items="${requestScope.books}" begin="1"end="6" step="1"><li><dl><dt><a href="findOneBook.do?id=${book.id}&aaa=1" target="_blank"><img src="${book.imgURL}" /></a></dt><dd class="title"><a href="findOneBook.do?id=${book.id}&aaa=1" target="_blank">${book.title}</a></dd><dd class="price">${book.price}</dd></dl></li></c:forEach><c:forEach var="cloth" items="${requestScope.clothes}" begin="1"end="6" step="1"><li><dl><dt><a href="findOneClothes.do?id=${cloth.id}&aaa=1"target="_blank"><img src="${cloth.imgURL}" /></a></dt><dd class="title"><a href="findOneClothes.do?id=${cloth.id}&aaa=1"target="_blank">${cloth.title}</a></dd><dd class="price">${cloth.price}</dd></dl></li></c:forEach></ul></div><div class="spacer clear"></div><div class="hot"><h2>热卖推荐</h2><ul class="product clearfix"><c:forEach var="e" items="${requestScope.electric}" begin="1"end="6" step="1"><li><dl><dt><a href="findOneElectric.do?id=${e.id}&aaa=1" target="_blank"><img
                                        src="${e.imgURL}" /></a></dt><dd class="title"><a href="findOneElectric.do?id=${e.id}&aaa=1" target="_blank">${e.title}</a></dd><dd class="price">${e.price}</dd></dl></li></c:forEach><c:forEach var="snack" items="${requestScope.snacks}" begin="1"end="6" step="1"><li><dl><dt><a href="findOneSnack.do?id=${snack.id}&aaa=1" target="_blank"><img
                                        src="${snack.imgURL}" /></a></dt><dd class="title"><a href="findOneSnack.do?id=${snack.id}&aaa=1" target="_blank">${snack.title}</a></dd><dd class="price">${snack.price}</dd></dl></li></c:forEach></ul></div></div>
<%} else {response.sendRedirect("indexProducts.do");}
%>

在接下来的博客中会继续更新其它形式的首页实现,如:商品图片自动跳转、显示最近浏览的商品等。

网上商城首页实现总结(一)相关推荐

  1. 【SSH网上商城项目实战16】Hibernate的二级缓存处理首页的热门显示

    转自:https://blog.csdn.net/eson_15/article/details/51405911 网上商城首页都有热门商品,那么这些商品的点击率是很高的,当用户点击某个热门商品后需要 ...

  2. 十七、网上商城项目(1)

    本章概要 脚手架项目搭建 安装与配置 axios 首页 页面头部组件 头部搜索框组件 头部购物车组件 头部组件 本章结合前面所学知识,开发一个网上商城项目. 成品如下 17.1 脚手架项目搭建 选择好 ...

  3. 简易的网上购物商城首页设计流程

    这里写目录标题 前言 1 整体构造思想 2 设计前的摸索 3 网页顶端和导航栏的设计 4 nav导航栏的固定效果 5 轮播图部分 6 明星机型设计 7 精选配件设计 8 搜索欧珀区域 9 服务和售后区 ...

  4. Java项目:网上商城系统(java+SSM+jsp+mysql+maven)

    源码获取:博客首页 "资源" 里下载! 一.项目简述功能 javaweb 网上商城系统,前台+后台管理,用户注册,登录,上哦展示,分组展示,搜索,收货地址管理,购物车管理,添加,购 ...

  5. web开发流程 - 网上商城示例

    一.需求确定 1:通过各种手段确定系统的功能与性能    1)功能:注册.浏览.搜索...    2)性能:可同时支持n个并发访问,并且响应时间不低于m毫秒...    3)手段:头脑风暴(brain ...

  6. 基于jsp的网上商城_[源码和文档分享]基于S2SH框架的JSP和MySQL的网上商城系统

    随着网络技术的飞速发展,网络已经成为人们获取和交换信息的最有效途径,通过网络进行商品交易已经成为一种新型的购物方式.网上商城系统是将商品销售和计算机网络功能结合起来的一种新型的电商系统,是当前新技术革 ...

  7. 【SSH网上商城项目实战20】在线支付平台的介绍

    之前已经完成了首页的显示,用户添加购物车,确认订单等功能,下面就是支付功能的开发了.用户确认了订单后会直接跳转到支付页面进行在线支付,在线支付需要第三方的接口,这一节主要介绍一些关于第三方支付的内容, ...

  8. 搭建iis自己可以别人_自己可以做网上商城的搭建吗?

    个人允许建网上商城吗?可以.现在网上商城建设的门槛和条件都放宽了,即使是个人也能轻松进行自己商城网站建设.不过如果是搭建电商网站,还是会有一定的限制,具体内容一起来跟HiShop小编了解一下. 一.个 ...

  9. 【SSH网上商城项目实战01】整合Struts2、Hibernate4.3和Spring4.2

    转自:https://blog.csdn.net/eson_15/article/details/51277324 今天开始做一个网上商城的项目,首先从搭建环境开始,一步步整合S2SH.这篇博文主要总 ...

最新文章

  1. 13_MFC工具条和状态栏
  2. poj 3352 双连通分量
  3. ztree树形菜单demo
  4. 逻辑分析推理(五小姐问题)
  5. Gym - 101775J Straight Master(差分数组)
  6. Android EditText中插入图片并响应点击事件
  7. no valid Qt versions found
  8. linux内存管理(六)-伙伴分配器
  9. java应用中如何连接dbproxy_GitHub - alchemystar/hero: 用c语言写的dbproxy
  10. linux中printf命令,总结linux下printf命令的用法
  11. OICQ登录号码清除器实现原理
  12. 【uniappAPP实现支付宝授权登录】
  13. 【21天学习挑战赛】哪吒邀你参加Java研讨班
  14. PMP|项目经理如何做好相关方管理?
  15. 【真北直播预报】让你的对话更有力,使十维宇宙不坠落
  16. 【JavaScript】实现移动小精灵
  17. 深度学习入门知识整理-训练技巧以及模型调优
  18. java — 多线程设计模式
  19. 小程序 【头像昵称填写能力】使用
  20. 【高数+复变函数】Laplace变换的性质

热门文章

  1. Kotlin替换Dagger2/Hilt的依赖注入框架--Koin。
  2. android的签名问题
  3. Android 音频录制和播放问题
  4. 【Android】init.rc
  5. 【浏览器】event.pageX/Y页面坐标(CSS像素) event.clientX/Y视口Viewport坐标(CSS像素) event.screenX/Y屏幕坐标(屏幕像素)
  6. Python XML 解析
  7. pandans导出Excel并将数据保存到不同的Sheet表中
  8. suse系统关闭防火墙
  9. HDU - 1223 DP 分类
  10. 用Ajax将checkbox选中的值发送给后台