【JAVAWEB开发】基于Java+Servlet+Ajax+jsp网上购物系统设计实现

news/2024/5/21 8:13:51/文章来源:https://blog.csdn.net/aasd23/article/details/126644476

哈喽~大家好呀,这篇给的大家带来的是网上购物系统设计。在传统电商时代,用户是先有需求再购买,用户对平台较为依赖,商家对消费者很难有直接的影响力,而如今社交 + 电商解决了产品质量的信息不对称问题,电商已经成为当今经济发展的一个重要领域。而网上购物就是实现之一,现在我们就来看看吧。

一、效果演示

1、首页界面

 如果没有登录,就只能查看无法购买

2、商品界面

 3、商品详情界面

 4、购物车界面

 5、购物订单界面

 6、交易成功界面

 7、个人订单界面

 

8、个人收藏界面

 9、管理员界面

 10、全部订单界面

 11、全部收藏界面

 

 二、数据库设计

数据库定义:数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。当今世界是一个充满着数据的互联网世界,充斥着大量的数据。即这个互联网世界就是数据世界。数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。

用户表(user):字段(id,用户名,密码,电话,邮箱)

购物车表(shopping_cart):字段(id,用户名,商品名,价格,购买数量,总价,图片地址)

订单表(order):字段(id,商品名,邮箱,用户名,收货地址,收货电话)

商品详情表(goods_parameters):字段(id,商品类型,图片地址)

商品类型(favorite):字段(id,商品类型名)

商品表(user):字段(id,商品名,商品类型名,价格,图片地址,销量,库存)

收藏表(favorite):字段(id,用户名,商品名,价格,图片地址)

历史记录表(browsinghistory):字段(id,记录名,记录价格,记录图片地址)、

品牌表(brand):字段(id,用户名,品牌类型,品牌名)

 

三、部分代码展示

登录展示

    <div class="registerarea "><!-- 注册表头部 --><h4>登录账号<div class="login"> 没有账号,去<a href="register.jsp" class="style_red">注册</a> &nbsp;&nbsp; <a href="retrievePassword.jsp">忘记密码?点击找回</a></div></h4><!-- 注册表身体 --><div class="reg_form"><form action="/EasybuyProject/loginServlet" class="submit" method="post"><ul class="clearfix:after"><li><label>账号:</label> <input type="text" class="inp username" name="username"><span class="error">格式错误,应为长度6-20并含有大小写字母数字</span><font color="red"><%if(session.getAttribute("messageLogin")!= null){out.print(session.getAttribute("messageLogin"));session.invalidate();}%></font></li><li><label>密码:</label> <input type="password" class="inp password" name="password">
<%--                        <span class="error">格式错误,应为长度6-20并含有大小写字母数字</span>--%></li><li><input type="submit" class="inputButton" value="登录"> &nbsp;&nbsp;<input type="reset" value="重置" class="inputButton"></li></ul></form></div></div>

正则验证

    <script>$(document).ready(function () {$(function () {var flagUser = falsevar flagPwd = falsevar $user_name = $('.username')var $pwd = $('.password')$user_name.blur(function () {var vals = $user_name.val();var reg = /^[a-zA-Z0-9\_]{6,20}$/;if (reg.test(vals)) {$user_name.next().hide();flagUser = true;} else {// $user_name.next().show().css("z-index","2").html('用户名是6-20位数字、字母和下划线!');$user_name.next().show();flagUser = false;}})$pwd.blur(function () {var vals = $pwd.val();var reg = /^[a-zA-Z0-9\_]{6,20}$/;if (reg.test(vals)) {$pwd.next().hide();flagPwd = true;} else {$pwd.next().show();flagPwd = false;}})})})</script>

Servlet

@WebServlet("/EasybuyProject/loginServlet")
public class LoginServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf8");resp.setCharacterEncoding("utf8");resp.setContentType("text/html;charset=UTF-8");String username = req.getParameter("username");String password = req.getParameter("password");UserService userService = new UserServiceImpl();User user = userService.login(username, password);HttpSession session = req.getSession();if (user != null && (!Objects.equals(username, "XzwadminNo1")) && !Objects.equals(password, "XzwadminNo1")) {resp.sendRedirect("/FrontPage/index.jsp");session.setAttribute("success",username);} else if(Objects.equals(username, "XzwadminNo1") && Objects.equals(password, "XzwadminNo1")){session.setAttribute("success",username);resp.sendRedirect("/FrontPage/indexAdmin.jsp");} else {session.setAttribute("messageLogin","用户名或者密码错误");resp.sendRedirect("/FrontPage/login.jsp");}}}

实体类

public class User {private int id;private String username;private String password;private String tel;private String email;public User() {}public User(String tel, String email) {this.tel = tel;this.email = email;}public User(int id, String username, String password, String tel, String email) {this.id = id;this.username = username;this.password = password;this.tel = tel;this.email = email;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getTel() {return tel;}public void setTel(String tel) {this.tel = tel;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", password='" + password + '\'' +", tel='" + tel + '\'' +", email='" + email + '\'' +'}';}
}

Dao

    public User login(String username, String password) {User user = null;Connection connection = null;PreparedStatement preparedStatement = null;ResultSet resultSet = null;try {connection = JdbcUtil.getConnection();String sql = "select * from user where username = ? and password= ?";preparedStatement = connection.prepareStatement(sql);preparedStatement.setString(1, username);preparedStatement.setString(2, password);resultSet = preparedStatement.executeQuery();if (resultSet.next()) {user = new User();user.setUsername(resultSet.getString("username"));user.setPassword(resultSet.getString("password"));}} catch (Exception e) {e.printStackTrace();} finally {JdbcUtil.release(resultSet, preparedStatement, connection);}return user;}

效果展示

源码获取见公众号

不积跬步无以至千里,趁年轻,使劲拼,给未来的自己一个交代!向着明天更好的自己前进吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_4192.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

卷积神经网络卷积层公式,卷积神经网络层数计算

卷积神经网络算法是什么&#xff1f; 一维构筑、二维构筑、全卷积构筑。 卷积神经网络&#xff08;ConvolutionalNeuralNetworks,CNN&#xff09;是一类包含卷积计算且具有深度结构的前馈神经网络&#xff08;FeedforwardNeuralNetworks&#xff09;&#xff0c;是深度学习&a…

【校招VIP】[产品][一本][6分]简历原则上写一页

校招的简历原则上只能写一页,尤其是电子版。因为校招是集中面试,会有太多简历,所有人都只有一页的话,写两页的很容易被漏掉一页关注【校招VIP】公众号,回复【简历】,添加校招顾问微信,即可获取简历指导! 简历背景:21届一本产品 简历评分:6分 一、学员简历 ​​​二、…

安装mkimage工具,解决报错“Invalid CPU Type - valid names are:”

问题 前两天在编译博雅芯片厂商提供的内核时&#xff0c;总是无法编译通过&#xff0c;试了好几次都提示如下错误&#xff1a; Invalid CPU Type - valid names are: alpha, arm, x86, ia64, m68k, microblaze, mips, mips64, nios2, powerpc, ppc, s390, sh, sparc, sparc64…

神经网络架构图讲解教程,神经网络架构图讲解图

什么是全连接神经网络&#xff1f;怎么理解“全连接”&#xff1f; 1、全连接神经网络解析&#xff1a;对n-1层和n层而言&#xff0c;n-1层的任意一个节点&#xff0c;都和第n层所有节点有连接。即第n层的每个节点在进行计算的时候&#xff0c;激活函数的输入是n-1层所有节点的…

猿创征文|C++来时路 _ 重温经典之C++类和对象 | 三大特性之一 - 封装 | 腾讯面试题

&#x1f49b; 前情提要&#x1f49b; 本章节是C的类和对象- 封装的相关知识~ 接下来我们即将进入一个全新的空间&#xff0c;对代码有一个全新的视角~ 以下的内容一定会让你对C有一个颠覆性的认识哦&#xff01;&#xff01;&#xff01; 以下内容干货满满&#xff0c;跟上…

【自然语言处理(NLP)】基于ERNIE语言模型的文本语义匹配

【自然语言处理&#xff08;NLP&#xff09;】基于ERNIE语言模型的文本语义匹配 作者简介&#xff1a;在校大学生一枚&#xff0c;华为云享专家&#xff0c;阿里云星级博主&#xff0c;腾云先锋&#xff08;TDP&#xff09;成员&#xff0c;云曦智划项目总负责人&#xff0c;全…

GD32单片机使用Jlink在SWD无法下载和仿真

1. SWD引脚锁解方法1 https://developer.arm.com/documentation/101455/0100/Setup-ULINK2/Configure-uVision-for-Debugging/Cortex-M-Debugging/Debug-Driver-Configuration/Debug 拉低RST引脚&#xff0c;修改SW速率&#xff0c;即使用在MCU复位状态下&#xff0c;通过SWD…

江西涉农县开展一对一指导服务 国稻种芯:重点保障水稻生长

江西涉农县开展一对一指导服务 国稻种芯&#xff1a;重点保障水稻生长 时代周报 王晨婷 邓宇晨 新闻中国采编网 中国新闻采编网 谋定研究中国智库网 国稻种芯中国水稻网 中国三农智库网-功能性农业农业大健康大会报道 万赢信采编&#xff1a;8月27日&#xff0c;接连几周高温之…

计算机毕业设计django基于python鲜花培育专家系统 (源码+系统+mysql数据库+Lw文档)

项目介绍 在各学校的教学过程中&#xff0c;鲜花培育专家管理是一项非常重要的事情。随着计算机多媒体技术的发展和网络的普及。采用当前流行的B/S模式以及3层架构的设计思想通过Python技术来开发此系统的目的是建立一个配合网络环境的可以鲜花培育专家技术学习的平台&#xf…

14天刷爆LeetCode算法学习计划——Day04 双指针(2)

Day04——双指针一、前言二、知识点三、LeetCode557. 反转字符串中的单词 III1.题目2.解题思路3.注意事项4.代码实现5.验证代码6.其它解法&#xff08;来自力扣&#xff09;1️⃣使用额外空间2️⃣借助StringBulider四、结语一、前言 盲目刷题只会让自己心态爆炸&#xff0c;所…

WiFi信号感知精度

WiFi信号感知极限&#xff1a; 对5GHz的WiFi&#xff0c;其波长λ\lambdaλ在5.7厘米左右&#xff0c;根据上图理论模型&#xff0c;当目标的位移导致的反射路径长度变化超过5.7厘米时&#xff0c;动态向量可以旋转超过一周&#xff0c;产生一个完整的正弦信号&#xff1b;当发…

弱口令(Weak Password)总结和爆破工具

文章目录弱口令定义弱口令字典通过社工定制字典库弱口令字典爆破工具超级弱口令检查工具水影-域信息收集WebCrackBurpSuite的intruder模块hydra弱口令定义 网站管理、运营人员由于安全意识不足&#xff0c;为了方便、避免忘记密码等&#xff0c;使用了非常容易记住的密码&…

Windows 硬盘分区整数大小计算

在线计算器参考 硬盘整数分区计算器在线工具 (NTFS/FAT32) Excel计算公式&#xff1a;

SpringBoot - 配置文件application.yml使用详解

什么是YAML SpringBoot - YAML使用详解 写在前面 &#xff08;1&#xff09;YAML 是 JSON 的超集&#xff0c;简洁而强大&#xff0c;专门用来书写配置文件的语言&#xff0c;可以替代 *.properties。 &#xff08;2&#xff09;在创建SpringBoot框架的项目时&#xff0c;引…

基于STM32和LD3320的智能语音识别柔光台灯设计

目录标题基于STM32智能语音识别柔光台灯设计设计说明原理图系统各模块器件介绍LD3320语音识别模块OLED显示模块PCB图源程序程序设计框架程序流程图主函数OLED程序设计说明书立论依据文献综述研究内容研究基础毕业设计&#xff1a; 基于STM32智能语音识别柔光台灯设计 &#x…

详解模板引擎二

详解模板引擎二引入问题一、什么是 ServletContext1. 理解 ServletContext2. 提出问题3. ServletContext 对象的重要方法二、代码示例&#xff1a;多个 Servlet 共享数据1. WriterServlet 类2. ReaderServlet 类展示结果展示结果1展示结果2展示结果3分析代码三、提出问题四、什…

springboot呼伦贝尔旅游网站的设计与实现毕业设计源码091833

目 录 摘要 1 绪论 1.1研究意义 1.2研究现状 1.3系统开发技术的特色 1.4论文结构与章节安排 2呼伦贝尔旅游网站系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.3.2数据修改流程 2.3.3数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功…

SSM汽车订票系统毕业设计-附源码061801

摘 要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对汽车票预定等问题&#xff0c;对订票系统进…

springboot农村饮用水海量数据存储平台毕业设计-附源码061205

摘 要 随着互联网趋势的到来&#xff0c;各行各业都在考虑利用互联网将自己推广出去&#xff0c;最好方式就是建立自己的互联网系统&#xff0c;并对其进行维护和管理。在现实运用中&#xff0c;应用软件的工作规则和开发步骤&#xff0c;采用Java技术建设农村饮用水海量数据存…

记一次使用docker搭建禅道

相关docker-compose.yml内容如下version: 3.3 services:zentao:container_name: zentaoports:- 10011:80volumes:- /docker/zentao/www/zentaopms:/www/zentaopms- /docker/zentao/www/mysqldata:/var/lib/mysqlimage: easysoft/zentao:latest启动docker启动成功之后,打开链接…