基于JSP和MySQL实现的易买网电商网站设计
1.项目简介
学习目标
1.1 什么是电商
电子商务项目是通过电子商务模式为主导开展起来的项目,电子商务项目也指用电子手段来装备一切商务活动过程的种种努力。电子商务项目可应用于任何一个拥有电子商务平台的个人或企业、公司。
1.2 电商的模式
我国的电子商务商业模式大致可以按照交易对象分为五类:
-
商业机构对商业机构的电子商务B2B
-
商业机构对消费者的电子商务B2C
-
商业机构对政府管理部门的电子商务B2G
-
消费者对政府管理部门的电子商务C2G
-
消费者对消费者的电子商务C2C
其中B2G、C2G是政府的电子商务行为,不以盈利为目的,主要包括政府采购、网上报关、报税等,对整个电子商务行业不会产生大的影响。
以下了解的是B2C、C2C、B2B这三种商业行为的电子商务模式。
B2C
B2C中的B是Business,即商业供应方(泛指企业),2(two)则是to的谐音,C是Consumer,即消费者。B2C电子商务是按电子商务交易主体划分的一种电子商务模式,即表示企业对消费者的电子商务,具体是指通过信息网络以及电子数据信息的方式实现企业或商家机构与消费者之间的各种商务活动,交易活动、今日活动和综合服务活动,是消费者利益Internet直接参与经济活动的形式。
B2C是企业对消费者直接开展使用活动的一种电子商务模式,这种形式的电子商务一部以直接面向客户开展零售业务为主,主要借助于互联网开展在线销售活动,故又称为电子零售(电子销售)或网络销售。
目前典型的有:京东、苏宁、亚马孙、易迅、1号店、国美、当当、凡客等。
B2B
B2B(BTB 是Business - to - Business的缩写) 是指企业与企业之间的通过专用网络或Internet,进行数据信息的交换、传递、开展交易活动的商业模式。它将企业内部网和企业的产品及服务,通过B2B网站或移动客户端与客户端紧密结合起来,通过网络的快速反应,为客户提供更好的服务,从而出尽企业的业务发展。
目前典型的有:阿里巴巴、中国制造网、中国供应商、世界工厂网、马可波罗、生意宝、一比多、勤加缘网、网络114、慧聪网等
C2C
C2C实际是电子商务的专业用语,是个人与个人之间的电子商务,其中C之的是消费者,因为消费者的因为单词是Customer(Consumer),所以简写C,又因为英文中的2的发音同to,所以C to C 简写为C2C,C2C即 Customer(Consumer) to Customer(Consumer) 。
C2C的意思就是消费者个人间的电子商务行为。比如一个消费者有一台电脑,通过网络进行交易,把他出售给另外一个消费者,此种交易类型就称为C2C电子商务。
目前典型的有:淘宝网、易趣网、1拍网、雅宝网、嘉德在线、大中华拍卖网、易必得拍卖网等
在直观上,业界将电商分为广义和侠义的:
-
侠义的电商是指实现贸易过程中各个阶段贸易的活动的电子化
-
广义的是指利用网络实现所有的商务活动业务流程的电子化
1.3 项目概述
本次项目是一个大家常见B2C电商网站。企业通过互联网为消费者提供一个新型的购物环境,消费者通过网络在网上购物、在网上支付。大大提高了交易效率,特别对于工作忙碌的上班族,这种模式可以为其节省宝贵的时间。
本次项目通过首页展示、一级二级导航、商品详情、购物车、搜索业务、订单、用户模块组成电商核心模块
1.4 技术栈
-
Servlet
-
JSP
-
EL
-
JSTL
-
HTML
-
JQuery
-
JavaScript
-
Bootstrap
-
My97DatePicker时间插件
Servlet
Server Applet 是Java Servlet的简写,是运行在服务器端的Java小程序;是动态的生成web内容的!
主要功能:在交互式的浏览和生成数据
JSP
JavaServer Pages :是由sun公司倡导的,许多公司参与一起建立的一种动态的网页技术!asp技术和java程序段和jsp标记形成的*.jsp,jsp 和 java Servlet 一样。
EL表达式
Expression Language,ECMAScript 和 XPath 让我们开发人员更加简单化!
JSTL
JSP的标准标签库(JSP Standard Tag Library)。JSTL 的作用:
-
提供给JAVAWEB 开发人员一个标准的用过标签函数库和 EL 来取代传统的在页面上嵌入 java 程序的做法
-
提高程序的可读性,维护性、方便性
HTML
Hypertext Markup Language 超文本标记性语言
1.5 开发环境
Eclipse + Mysql +Navicat + Windows + JDK1.8 + Tomcat9
-
JDK 下载地址 :https://www.oracle.com/index.html
-
Mysql 下载地址 :https://www.mysql.com/downloads
-
Eclipse 下载地址 :http://www.eclipse.org/downloads
-
Navicat 下载地址 :https://www.navicat.com/en/products
2.数据库设计
2.1 表结构
2.1.1 用户表
2.1.2热门标签表
2.1.3新闻表
2.1.4 公告表
2.1.5 留言表
2.1.6 商品大分类表
2.1.7 商品小分类表
2.1.8 商品表
2.1.9 订单表
2.1.10订单商品表
2.2ER图
3.项目实现
流程图
编写实体类
```java
package com.xxx.vo;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.xxx.vo.OrderProduct;
//商品实体类
public class Product {
private int id; // id
private String name;// 商品名称
private int price; // 价钱
private int hot; //商品热度
private Date hotTime;//商品热度时间
private int stock; //库存
private String proPic; //商品路劲
private String description;//商品描述
private int specialPrice; //特价的
private Date specialPriceTime;//特价时间
private ProductBigType bigType;//所属大类型的
private ProductSmallType smallType;//所属小类型的
private List
public List
} ```
编写商品接口实现类(implements),实现接口方法具体功能(数据库交互)
```java package com.xxx.service.impl; 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.xxx.service.ProductService; import com.xxx.util.DBUtil; import com.xxx.vo.Product; public class ProductServiceImpl implements ProductService {
@Override // 热度商品的列表展示
public List
编写新闻接口并构建方法(NewsService)
java
package com.xxx.service;
import java.util.List;
import com.xxx.vo.News;
public interface NewsService {
//查询所有新闻信息
List<News> findAll();
}
** 编写新闻接口实现类(implements),实现接口方法具体功能(数据库交互)**
java
package com.xxx.service.impl;
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.xxx.service.NewsService;
import com.xxx.util.DBUtil;
import com.xxx.vo.News;
public class NewServiceImpl implements NewsService {
@Override // 查询所有新闻信息
public List<News> findAll() {
List<News> newsList = new ArrayList<News>();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = DBUtil.getConn();
String sql ="SELECT * FROM T_NEWS WHERE ID < 7";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next()) {
News news = new News();
news.setId(rs.getInt("id"));
news.setContent(rs.getString("content"));
news.setCreateTime(rs.getDate("createTime"));
news.setTitle(rs.getString("title"));
newsList.add(news);
}
return newsList;
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.closeAll(conn, pstmt, rs);
}
return null;
}
}
** 编写公告接口并构建方法(NoticeService)**
java
package com.xxx.service;
import java.util.List;
import com.xxx.vo.Notice;
public interface NoticeService {
//查询所有公告
List<Notice> findAll();
}
编写公告接口实现类(implements),实现接口方法具体功能(数据库交互)
java
package com.xxx.service.impl;
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.xxx.service.NoticeService;
import com.xxx.util.DBUtil;
import com.xxx.vo.Notice;
public class NoticeServiceImpl implements NoticeService {
@Override
public List<Notice> findAll() {
List<Notice> noticeList = new ArrayList<Notice>();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = DBUtil.getConn();
String sql ="SELECT * FROM T_NOTICE WHERE ID < 7";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next()) {
Notice notice = new Notice();
notice.setId(rs.getInt("id"));
notice.setContent(rs.getString("content"));
notice.setCreateTime(rs.getDate("createTime"));
notice.setTitle(rs.getString("title"));
noticeList.add(notice);
}
return noticeList;
} catch (SQLException e) {
e.printStackTrace();
}finally {
DBUtil.closeAll(conn, pstmt, rs);
}
return null;
}
}
编写InitController(完成上面的具体业务)
java
package com.xxx.controller;
import java.io.IOException;
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.xxx.service.NewsService;
import com.xxx.service.NoticeService;
import com.xxx.service.ProductBigTypeService;
import com.xxx.service.ProductService;
import com.xxx.service.TagService;
import com.xxx.service.impl.NewsServiceImpl;
import com.xxx.service.impl.NoticeServiceImpl;
import com.xxx.service.impl.ProductBigTypeServiceImpl;
import com.xxx.service.impl.ProductServiceImpl;
import com.xxx.service.impl.TagServiceImpl;
import com.xxx.vo.News;
import com.xxx.vo.Notice;
import com.xxx.vo.Product;
import com.xxx.vo.ProductBigType;
import com.xxx.vo.Tag;
/**
* 请求初始化拦截
*/
public class InitController extends HttpServlet {
private static final long serialVersionUID = 1L;
// 多态--通过接口,以及接口的实例化来降低耦合度、让程序更加容易拓展!
private ProductBigTypeService bigTypeService = new
ProductBigTypeServiceImpl();
// 热门标签
private TagService tagService = new TagServiceImpl();
// 公告
private NoticeService noticeService=new NoticeServiceImpl();
// 新闻
private NewsService newsService=new NewsServiceImpl();
// 商品
private ProductService productService=new ProductServiceImpl();
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// 查询类别信息存放到作用域中
List<ProductBigType> bigTypeList = bigTypeService.findAllBigType();
System.out.println(bigTypeList + "bigTypeList");
// 查询热门标签导航栏
List<Tag> tagList = tagService.findAll();
//获取公告
List<Notice> noticeList = noticeService.findAll();
//获取新闻
List<News> newList = newsService.findAll();
//获取特价商品
List<Product> specialPriceProductList =
productService.findSpecialPrice();
//获取热门商品
List<Product> hotProductList = productService.findHotProductList();
// 将查询结果放到域对象里面
req.setAttribute("bigTypeList", bigTypeList);
req.setAttribute("tagList", tagList);
req.setAttribute("noticeList", noticeList);
req.setAttribute("newsList", newList);
req.setAttribute("specialPriceProductList", specialPriceProductList);
req.setAttribute("hotProductList", hotProductList);
req.getRequestDispatcher("/index.jsp").forward(req, resp);
}
}
前台获取数据,并显示数据(index.jsp) 显示内容:特价&热卖&新闻&公告栏
```html <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
```
5.项目展示
首页
导航栏
分类
用户注册
登陆与注销
新闻公告
分类查询与模糊查询
商品详情和最近浏览
购物车和下单
用户订单查询
后台管理
参考文献
- 郑州华中食品城网上购物中心的设计与实现(电子科技大学·王民川)
- 网购平台的设计与实现(吉林大学·王萱筠)
- 基于J2EE构架下的典型网上交易平台实现技术(南京工业大学·于磊)
- 基于PHP+MySQL的图书在线销售系统的设计与实现(吉林大学·万颖)
- 电子产品网络购物系统的设计与实现(电子科技大学·李睿)
- 电子商务门户网站的研究与实现(大庆石油学院·戴庆)
- 郑州华中食品城网上购物中心的设计与实现(电子科技大学·王民川)
- Go购电子商城的设计与实现(大连理工大学·赵楠)
- 基于J2EE构架下的典型网上交易平台实现技术(南京工业大学·于磊)
- 基于.NET的网上购物系统的设计与实现(电子科技大学·朱照坤)
- 基于JSP的儿童购物网站的设计与实现(河北工业大学·陈顺通)
- WEB数据库——基于JSP技术实现电子商务网站的设计(吉林大学·孙明磊)
- WEB数据库——基于JSP技术实现电子商务网站的设计(吉林大学·孙明磊)
- 翼百公司网上购物系统设计与实现(大连理工大学·赵斌)
- 翼百公司网上购物系统设计与实现(大连理工大学·赵斌)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设向导 ,原文地址:https://m.bishedaima.com/yuanma/35445.html