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. ...
随机推荐
- macvlan 网络结构分析 - 每天5分钟玩转 Docker 容器技术(56)
上一节我们创建了 macvlan 并部署了容器,本节详细分析 macvlan 底层网络结构. macvlan 网络结构分析 macvlan 不依赖 Linux bridge,brctl show 可以 ...
- 51NOD 1258 序列求和 V4 [任意模数fft 多项式求逆元 伯努利数]
1258 序列求和 V4 题意:求\(S_m(n) = \sum_{i=1}^n i^m \mod 10^9+7\),多组数据,\(T \le 500, n \le 10^{18}, k \le 50 ...
- C++算法接口使用参考
C++算法接口参考 算法参考:[algorithm] 编译:g++ -std=c++11 xxx_algorithm.cpp 运行:./a.out 1.保持原序列运算 all_of template ...
- 理解javascript中的回调函数(callback)
以下内容来源于:http://www.jb51.net/article/54641.htm 最近在看 express,满眼看去,到处是以函数作为参数的回调函数的使用.如果这个概念理解不了,nodejs ...
- CSS3背景相关样式
background-image绘制多张图片叠加,示例如下: <!DOCTYPE html> <html lang="en"> <head> & ...
- class类的初始化
class类的初始化 C++中引入了构造器这个概念(constructor)的概念,这是在创建一个对象时被自动调用的特殊方法. Java也引入了构造器 构造器的主要的作用就是确保每个对象都会得到初 ...
- 一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——解码篇:(二)用ffmpeg解码音频
其实这篇的内容和(一)用ffmpeg解码视频基本是一样的,重点还是给ffmpeg指定callback函数,而这个函数是从RTSP服务端那里获取音频数据的. 这里,解码音频的示例代码量之所以比解码视频的 ...
- 将execl里的数据批量导入数据库
本文将采用NPOI插件来读取execl文件里的数据,将数据加载到内存中的DataTable中 /// <summary> /// 将Excel转换为DataTable /// </s ...
- bootstrap modal 弹出效果
window.showMsg = function (msg) { //显示悬浮窗 $("#autoCloseModal").modal("show") //设 ...
- BotVS开发基础—2.5 绘制图表
代码 import time import math def main(): chart = { # 用于初始化 图表的对象 'title': {'text': "line数值触发 plot ...