javaweb练手项目jsp+servlet简易购物车系统
简易购物车项目
这是一个用intellij IDEA做的简易的javaweb项目,开发环境使用的jdk1.8和tomcat8以及mysql数据库。
1.项目开发准备:
- 创建github仓库
- 项目框架搭建
- 项目构建并同步仓库
- 编写所需业务逻辑
2.开发项目解决方案:
- github仓库站上所属存放的项目仓库
- mysql数据库中创建项目所需shopCartDB数据库,用于储存购物车项目所需数据
- 采用注解@WebServlet进行http请求响应
- 搭建jsp+servlet架构的技术框架,基于c标签及el表达式进行jsp页面数据渲染,
c标签引入方式:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
根据jdbc直连技术,编写数据库操作工具类,方便存储数据,代码如下:
public class DBUtils {
String url = null; //连接地址
String username = null; //数据库名
String password = null; //数据库密码
String driverClass = null; //连接驱动
private static DBUtils db = new DBUtils();
/**构建数据库连接参数*/
private DBUtils() {
try {
url = "jdbc:mysql://localhost:3306/shopCartDb?useUnicode=true&characterEncoding=utf8";
username = "root";
password = "root123";
driverClass = "com.mysql.jdbc.Driver";
Class.forName(driverClass);
} catch (Exception e) {
e.printStackTrace();
}
}
/**构建数据库连接对象*/
public Connection getConnection(){
Connection conn = null;
try {
conn = DriverManager.getConnection(url, username, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public static DBUtils getInstance(){
return db;
}
}
3.项目功能:
- 注册
- 登录
- 找回密码
- 商品列表
- 添加购物车
- 购物车删除
- 购物车数量修改
- 购物车结算
4.工作内容:
本项目采用mysql数据库进行储存数据,所以优先搭建项目所需数据库结构,此项目有用户表,商品表,购物车表,结算表等信息。
利用搭建好的jsp+servlet框架提供http请求及响应视图能力,展示项目所需各个jsp页面。根据响应显示注册页面进行注册操作。
根据注册所填写的帐号和密码进行系统登录,如忘记密码,可根据邮件动态验证码形式进行密码找回,密码采用腾讯QQ服务提供的SMTP服务器
进行验证码收发操作,系统进入后展示商品列表,利用c标签将db入库的数据进行动态渲染,el表达式进行数据取值展示,添加购物车利用ajax请求
进行添加购物车、移除购物车的技术实现,根据所添加的购物车列表数据,可更改购物车的数量进行结算,将购物车页面数据进行复选框勾选模式。
可进行多个商品一起结算,利用js技术筛选出具体哪些商品进行勾选,根据勾选商品的数量及商品单价进行最终价格结算。从而完成一系列的购物车
技术实现
5.项目总结:
- jsp+servlet组合框架开发,条理清晰的mvc框架
- 了解c标签进行数据渲染及多方面的强大渲染能力,可以更合理动态展示复杂的数据结构
- 丰富学习了markdown扩充的语法,可以更直观展示项目介绍文档
- 合理利用jdbc直连技术,更加熟悉掌握对数据的增删改查操作
- 巩固java的基础知识,并针对不足之处记性额外补充学习,比如list结构及数组结构体的运用
- 熟悉ajax技术,能利用ajax技术针对get与post请求进行数据的传递和响应
6.部分代码截图:
商品列表代码
购物车列表代码
结算后端代码
结算列表代码
7.项目效果:
登录
商品列表
购物车列表
结算列表
javaweb练手项目jsp+servlet简易购物车系统的更多相关文章
- 20个Java练手项目,献给嗜学如狂的人
给大家推荐一条由浅入深的JAVA学习路径,首先完成 Java基础.JDK.JDBC.正则表达式等基础实验,然后进阶到 J2SE 和 SSH 框架学习.最后再通过有趣的练手项目进行巩固. JAVA基础 ...
- 10个相见恨晚的 Java 在线练手项目
10个有意思的Java练手项目: 1.Java 开发简单的计算器 难度为一般,适合具有 Java 基础和 Swing 组件编程知识的用户学习 2.制作一个自己的 Java 编辑器 难度中等,适合 Ja ...
- Python之路【第二十四篇】:Python学习路径及练手项目合集
Python学习路径及练手项目合集 Wayne Shi· 2 个月前 参照:https://zhuanlan.zhihu.com/p/23561159 更多文章欢迎关注专栏:学习编程. 本系列Py ...
- 适合Python的5大练手项目, 你练了么?
在练手项目的选择上,还存在疑问?不知道要从哪种项目先下手? 首先有两点建议: 最好不要写太应用的程序练手,要思考什么更像是知识,老只会写写爬虫是无用的,但是完全不写也不行. 对于练手的程序,要注意简化 ...
- 适合Python 新手的5大练手项目,你练了么?
接下来就给大家介绍几种适合新手的练手项目. 0.算法系列-排序与查找 Python写swap很方便,就一句话(a, b = b, a),于是写基于比较的排序能短小精悍.刚上手一门新语言练算法最合适不过 ...
- 去哪找Java练手项目?
经常有读者在微信上问我: 在学编程的过程中,看了不少书.视频课程,但是看完.听完之后感觉还是不会编程,想找一些项目来练手,但是不知道去哪儿找? 类似的问题,有不少读者问,估计是大部分人的困惑. 练手项 ...
- 80个Python练手项目列表
80个Python练手项目列表 我若将死,给孩子留遗言,只留一句话:Repetition is the mother of all learning重复是学习之母.他们将来长大,学知识,技巧.爱情 ...
- Python学习路径及练手项目合集
Python学习路径及练手项目合集 https://zhuanlan.zhihu.com/p/23561159
- web前端学习部落22群分享给需要前端练手项目
前端学习还是很有趣的,可以较快的上手然后自己开发一些好玩的项目来练手,网上也可以一抓一大把关于前端开发的小项目,可是还是有新手在学习的时候不知道可以做什么,以及怎么做,因此,就整理了一些前端项目教程, ...
随机推荐
- OCR之前这些因素必须考虑到!
用久了ABBYY FineReader 14OCR文字识别软件,相信大家都知道图像质量对OCR质量有很大的影响,本文将给大家讲解下在识别图像之前,有哪些因素需要考虑到! 1.OCR语言 ABBYY F ...
- synchronized关键字的内存语义
以下内容摘自:Java并发编程之美 加锁和释放锁的语义:当获取锁以后会清空锁块内本地内存中将会被用到的共享变量,在使用这些共享变量的时从主内存进行加载,在释放锁时将本地内存中修改的 共享变量刷新到主内 ...
- pytest参数化
Pytest可以在多个级别上实现测试参数化 一.@pytest.fixture装饰器调用参数 示例 import pytest from selenium import webdriver from ...
- HOOK API函数跳转详解
原文链接:https://blog.csdn.net/cosmoslife/article/details/7670951 结合课件逆向11分析
- MacBook键盘锁定、按键失效、无反应等问题
目录 MacBook按键无反应 u,i,o,j,k,l等键失灵 capslock灯不亮 原文链接:joselynzhao·CSDN·MacBook键盘锁定.按键失效.无反应等问题 MacBook按键无 ...
- Cys_Control(四) MTabControl
一.查看TabControl原样式 <ControlTemplate TargetType="{x:Type TabControl}"> <Grid x:Name ...
- 关于老猿Python系列文章发布网址变化的说明
老猿Python系列文章最开始在新浪发布,后逐渐开通了CSDN.博客园和简书三个网址,但老猿一来工作忙,二来Python需要学习的内容太多,因此实在没时间同时维护这么多博客,事实上除了CSDN其他网站 ...
- moviepy音视频开发专栏文章目录
☞ ░ 前往老猿Python博文目录 ░ <moviepy音视频开发专栏>为收费专栏,基于老猿阅读moviepy1.03版本的源代码以及大量测试验证的基础上,详细介绍moviepy主要音视 ...
- Python中splitlines方法判断文本中一行结束除了回车换行符是否还有其他字符?
Python中splitlines([keepends])方法用于返回由原字符串中各行组成的列表,在行边界的位置拆分. 如果keepends=True,结果列表中包含行边界,否则不包含 行边界的字符. ...
- PHP代码审计分段讲解(14)
30题利用提交数组绕过逻辑 本篇博客是PHP代码审计分段讲解系列题解的最后一篇,对于我这个懒癌患者来说,很多事情知易行难,坚持下去,继续学习和提高自己. 源码如下: <?php $role = ...