2017Java课程设计201521123007
1. 课程设计博客链接
项目地址
2. 个人负责模块或任务说明
ps:一个人做的项目
一个登录jsp文件,登录成功转入商品界面,
一个商品jsp文件,显示所有商品信息,数据从MySql数据库导入,可以加入购物车,然后跳转到购物车界面,
一个购物车jsp文件,显示添加到购物车的商品信息,可以返回商品界面继续购物,也可以删除某商品,可以清空购物车,购物车界面可以显示商品总价,支付跳转到支付确认界面确认总价,结束系统。
3. 项目主要功能流程图

4. 自己的代码提交记录截图

5. 项目运行截图






6. 项目主要代码:
ShowProducts.jsp中主要代码:
<%
Map<String, Goods> products = new HashMap<String, Goods>();
ArrayList<Goods> list = new Connect().getAllgoods();
int num = 1;
for (Goods e : list)
products.put(String.valueOf(num++), e);
session.setAttribute("products", products);
%>
<%
Set productIdSet = products.keySet();
Iterator it = productIdSet.iterator();
int number = 1;
while (it.hasNext()) {
String id = (String) it.next();
Goods product = (Goods) products.get(id);
%>
Buy.jsp主要代码:
<%
Cart c = (Cart) session.getAttribute("cart");
if (c == null) {
c = new Cart();
session.setAttribute("cart", c);
}
Map products = (HashMap) session.getAttribute("products");//接收商品Map
List<GoodsItem> items = c.getItems();//购物车的商品条目放入List
if (action != null && action.trim().equals("add")) {
String id = request.getParameter("id");
Goods p = (Goods) products.get(id);
GoodsItem gi = new GoodsItem();
gi.setGoods(p);
gi.setCount(1);
c.add(gi);
}
if (action != null && action.trim().equals("clear")) {
c.clear();
}
if (action != null && action.trim().equals("delete")) {
String id = (String) request.getParameter("id");
c.deleteItemById(id);
}
%>
“加入购物车”链接到Buy.jsp文件并传送选中的product.getId()值放到参数id和action方法add:
<a href="Buy.jsp?id=<%=product.getId()%>&action=add">加入购物车</a>(执行add转到购物车页面)
“删除”链接到Buy.jsp文件(本页面)并传送选中的gi.getGoods().getId()值放到参数id和action方法delect:
< a href="Buy.jsp?action=delete&id=<%=gi.getGoods().getId()%>">删除</a>(执行delect刷新本页面)
链接到商品界面:
<a href="ShowProducts.jsp" target="cart">返回</a>
执行clear刷新本页面:
<a href="Buy.jsp?action=clear">清空</a>
链接到支付确认页面,并把总价传送,执行clear
<%
double total = 0;
if (c.getTotalPrice() != 0)
total = c.getTotalPrice();
session.setAttribute("total", total);
%>
<a href="CheckPay.jsp?total=<%=total%>&action=clear">支付</a>
7. 课程设计感想
这个项目功能还太少,页面不够美观,有很大的改进空间。
通过这次课程设计,我学到了不少有用的知识,还有思考方法,实验过程非常艰辛,没日没夜的打代码查资料,还好结果是好的,努力了总会有收获。
2017Java课程设计201521123007的更多相关文章
- 2017JAVA课程设计
1.团队课程设计博客链接 http://www.cnblogs.com/ltykm/p/7063663.html 2.个人负责模块或任务说明 本人任务:定时器具体功能的实现 3.自己的代码提交记录截图 ...
- [课程设计]任务进度条&开发日志目录
任务进度条&开发日志目录 周期 时间 任务 Sprint One 11.14 ● Scrum团队分工及明确任务1.0 Sprint One 11.15 ● Scr ...
- 课程设计 --- 黑白棋中的 AI
原文链接:https://www.dreamwings.cn/reversi/3013.html 到了考试周了佯,可是偏偏这个时候迎来了很多很多的课程设计,幸好教授把C语言的课程设计提前发出了,不然都 ...
- Java课程设计——扫雷(winmine)
因为是我的课程设计,要是有冲突就不好了,转载注明出处!!! 程序很简单,毕竟我是搞acm的,我就只介绍一下闪光点. 中心空白搜索的时候,我用的DFS: 有一点是要注意的,就是JFrame不支持重画,还 ...
- [课程设计]Scrum 1.6 多鱼点餐系统开发进度
[课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4. ...
- [课程设计]Scrum 1.7 多鱼点餐系统开发进度
[课程设计]Scrum 1.7 多鱼点餐系统开发进度(点餐菜式内容添加及美化) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题 ...
- [课程设计]Scrum 1.3 多鱼点餐系统开发进度
[课程设计]Scrum 1.3 多鱼点餐系统开发进度 Scrum 1.3 多鱼点餐系统开发进度 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追 ...
- [课程设计]Scrum团队分工及明确任务1.0 ----多鱼点餐
[课程设计]Scrum团队分工及明确任务1.0 ----多鱼点餐 一.开发背景 多鱼点餐系统是一套比较系统化的针对餐厅点餐服务的产品,从顾客进入餐厅点餐到用餐结束再到最后的结账买单,需要全面的.高效的 ...
- [课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复)
[课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4. ...
随机推荐
- 关于JS中获取浏览器高度和宽度值的多种方法(多浏览器)
三种浏览器获取值方法 IE中: document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 ...
- macvlan 网络隔离和连通 - 每天5分钟玩转 Docker 容器技术(57)
上一节我们创建了两个 macvlan 并部署了容器,网络结构如下: 本节验证 macvlan 之间的连通性. bbox1 能 ping 通 bbox3,bbox2 能 ping 通 bbox4.即:同 ...
- 神经网络与深度学习笔记 Chapter 6之卷积神经网络
深度学习 Introducing convolutional networks:卷积神经网络介绍 卷积神经网络中有三个基本的概念:局部感受野(local receptive fields), 共享权重 ...
- 【Spring 核心】AOP 面向切面编程
一.什么是面向切面编程? 二.通过切点来选择连接点 三.使用注解创建切面 四.在XML中声明切面 五.注入AspectJ切面
- Andrew Ng机器学习课程笔记--week2(多元线性回归&正规公式)
1. 内容概要 Multivariate Linear Regression(多元线性回归) 多元特征 多元变量的梯度下降 特征缩放 Computing Parameters Analytically ...
- 更符合面向对象的数据库操作方式-OrmLite
1. jar包下载 下载地址:http://ormlite.com/releases/,一般用core和android包即可. 如果使用的是android studio,也可以直接通过module s ...
- KVM套件-linux基础
KVM套件 使用KVM的虚拟机,通过KVM的虚拟机克隆功能,提高效率,避免在实验过程中重装系统. 另外,在LINUX系统上使用KVM的虚拟化,可以获得更好性能,且可以提前熟悉企业级虚拟化技术. 过程: ...
- opencv VideoCapture使用示例
在centos7下验证VideoCapture功能. 1 opencv处理视频时要使用ffmpeg,这里使用添加源的方式安装,分为3步 1.1 先安装EPEL Release,使用其他的repo源,所 ...
- IO库
IO类 C++语言不直接处理出入输出,而是通过一族定义在标准库中的类型来处理IO.这些类型支持从设备读取数据.向设备写入数据的IO操作,设备可以是文件 .控制台窗口 等.还有一些类型允许内存IO ,即 ...
- TC358775XBG:MIPI DSI转双路LVDS芯片简介
TC358775XBG是一颗MIPI DSI转双路LVDS芯片,通信方式:IIC/MIPI command mode,分辨率1920*1200,封装形式:BGA64.